簡體   English   中英

什么在shebang python26或python2.6中引用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM