2016-12-02 201 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命令就能解決問題