我安裝了2.7和3.0版本的Python解釋器(在我的Ubuntu 32系統上),但是一個特定的腳本使用3.0。如何讓我的腳本選擇正確的python interperter?
使用程序與python myprogram.py
運行時
#!/usr/bin/python3 -B
將無法正常工作。
而且我還需要一個解決方案,該解決方案也適用於Windows,我也同時安裝了兩個python版本。
我該如何讓腳本只能使用正確的python版本運行?
我安裝了2.7和3.0版本的Python解釋器(在我的Ubuntu 32系統上),但是一個特定的腳本使用3.0。如何讓我的腳本選擇正確的python interperter?
使用程序與python myprogram.py
運行時
#!/usr/bin/python3 -B
將無法正常工作。
而且我還需要一個解決方案,該解決方案也適用於Windows,我也同時安裝了兩個python版本。
我該如何讓腳本只能使用正確的python版本運行?
請使用virtualenv,這使得獨立的Python環境變得簡單。
並以Python3.3開始[virtualenv將它作爲標準庫](http://docs.python.org/3.3/library/venv.html)作爲'venv' – cfi 2013-02-19 15:15:21
請看看The wrong python interpreter is called
你必須根據你安裝Python和你的系統變量所需版本上選擇一個正確的解釋。
那裏的答案沒有提供便攜式解決方案這也在Windows下工作。 – 2013-02-19 10:23:26
python = Python to use. # This has to be the absolute path to Python executable
os.execl(python, python, * sys.argv)
這樣你就可以用你想要使用的python重啓腳本。不是很時尚。
如果使用exec(p)變體,則可以運行路徑中的命令 – 2013-02-19 10:39:10
我不知道你爲什麼不能只用python3 foo.py
啓動程序,但是可以讓python2程序以python3的形式重新啓動,就像這樣。
import sys
if sys.version_info.major != 3:
import os
# replace this process with a python3 process
os.execlp("python3", "python3", *sys.argv)
這是一個壞的解決方案,但因爲現在你的python3程序不能使用任何非有效python2語法
你不能,因爲'python'默認的python-2.X在這種情況下, ,所以你的腳本已經運行了。 – CharlesB 2013-02-19 10:17:32