[英]What to reference in the shebang python26 or python2.6
對於Python腳本,我需要一個特定的Python版本。 現在我的Python 2.6安裝包含python26和python2.6
我應該把哪一個放在shebang?
選項1:
#!/usr/bin/env python2.6
選項2:
#!/usr/bin/env python26
編輯 :是的,有理由不使用普通的python。 在我們的大學的一些環境中,python鏈接到python2.4,我的代碼使用了相當多的2.6功能。
您無法始終保證將使用shebang(甚至用戶將擁有該版本)。
您不應該完全限制特定版本。 最好至少需要一個給定的版本(如果你的代碼適用於Python 2.6,為什么它不適用於Python 2.7?我可能在幾個月內沒有安裝Python 2.6。)
我會堅持使用/usr/bin/env python
shebang而是動態檢測版本。 信不信由你,“正常”的做法是:
import sys
ver = sys.version[:3]
這將為您提供一個3個字符的字符串,如“2.6”或“2.7”。 我只是檢查第一個字符='2'(假設你想阻止Python 3運行你的腳本,因為它很大程度上是不兼容的)和第三個字符> ='6'。
編輯 :參見Petr的評論 - 使用sys.version_info[0:2]
代替(給你一對像(2, 6)
或(2, 7)
。
剛剛檢查我的Linux系統,只有python2.6
而不是python26
所以前者看起來更好。
只是為了澄清,我會使用條件導入,在我的情況下,我需要OrderedDict
,它只是python 2.7+;
try:
from collections import OrderedDict
except ImportError:
print("Python 2.7+ is needed for this script.")
sys.exit(1)
你為什么不用/usr/bin/python
代替? 有沒有理由不這樣做?
如果您還沒有,可以使用以下命令創建指向它的鏈接:
ln -s /usr/bin/python26 /usr/bin/python
如果您將來升級python,這可以確保兼容性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.