指定python版本及module加载
linux服务器预装的软件在/usr/bin中公司的服务器上预装的python是2.6.6版本的,后来在/opt/python路径中装了python2.7.13,如何在每次执行python脚本时默认是调用python2.7呢?一个办法是在脚本的开头加上一行:#!/opt/python/bin/python2.7但如果想要在交互命令行界面调用python2.7执行命令,就不能直...
linux服务器预装的软件在/usr/bin中
公司的服务器上预装的python是2.6.6版本的,后来在/opt/python路径中装了python2.7.13,
如何在每次执行python脚本时默认是调用python2.7呢?
一个办法是在脚本的开头加上一行:
#!/opt/python/bin/python2.7
但如果想要在交互命令行界面调用python2.7执行命令,就不能直接输入python,因为系统会默认调用/usr/bin/python,
而需要输入
/opt/python/bin/python2.7
每次都需要输入这么长就比较麻烦,可以设置一下环境变量,在~/.bashrc中设置指定的python版本,其实是设置的python的别称:
vi ~/.bashrc
alias python='/opt/python/bin/python2.7'
保存退出后,执行下面的命令重新加载~/.bashrc
source ~/.bashrc
这样每次调用python就不是/usr/bin/中的python2.6,而是/opt/python/bin/中的python2.7了。
os.system()中默认python的问题
这样还不能解决所有问题,在python脚本中使用os.system('python <command>')时会出现在下面的问题:
#!/opt/python/bin/python2.7
import os
os.system('python <command>') #此python是/usr/bin/python
尽管申明了该脚本调用的python解释器是python2.7,但在os.system()中系统调用的还是/usr/bin/中的python2.6
有两个办法可以解决这个问题:
1. 在运行脚本前先执行以下命令:
module load opt-python
#或
module add opt-python
系统加载了opt-python后就默认调用/opt/python/bin/python2.7了,即使不在~/.bashrc中设置python的别称,以后调用python都是默认的python2.7。
每次重启xshell或者putty等远程终端工具以及切换节点后都需要重新加载opt-python,比较麻烦。
要是忘记加载而又开启了分析流程,最终肯定会因为无法加载某些包而导致出错,如果又不是通过qsub投递的任务,无法终止流程,只能等待程序出错自动停止后再加载opt-python重新开启分析流程,这就会浪费大量时间。所以就有第二个一劳永逸的方法:
2. 把module load opt-python写进~/.bahsrc中
vi ~/.bashrc
module load opt-python
保存退出后运行
source ~/.bashrc
这样每次登陆系统时已经自动加载opt-python了
更多推荐
所有评论(0)