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了

Logo

更多推荐