2016-12-02 159 views
1

我试图运行一个名为compare.py的Python程序,它使程序保持运行,直到完成而不中断为止。我的python程序有只能运行在python 2.7上的包,当我使用nohup命令时,程序运行在python 2.6中。如何在使用nohup时更改python的版本?在使用nohup时更改python版本

举例:nohup的蟒蛇compare.py $

我试图做: 别名蟒蛇= python2.7

启动程序和Python的版本不切换之前。当我运行nohup时,如何将python的版本切换到2.7?

+0

尝试: 'nohup的Python 2.7版'。如果你输入'which python',你会得到什么? –

+0

我可以复制你的问题;我认为这是因为你的别名不适用,因为你不用Python启动命令 –

+0

是否有可能你的'PATH'变量不是'export'ed,所以只有直接启动才用它来查找?如果是这样,只有默认的可执行文件搜索位置将由'nohup'调用的任何命令检查,而当您直接在命令行调用'python'时将检查完整的'PATH'。如果是这种情况,运行'export PATH',然后重试'nohup'命令应该修复它。 – ShadowRanger

回答

0

最简单的方法是使用shebang行来指定解释器。在你的Python文件的开始,放像

#!/usr/bin/python2.7 
# This should be a path to an interpreter that you know for sure is Python 2.7 

然后,使用chmod +x file.py,使Python的文件本身的可执行文件,而忽略你的nohup命令,例如在python一部分。 nohup ./compare.py

0

我和anaconda python有同样的问题。在使用nohup python时,它使用python 2.7,但终端中的通用python命令让我达到3.6。

nohup ~/anaconda3/bin/python scriptname.py 

提供完整路径蟒蛇后nohup命令就能解决问题