有時我看到#!/usr/bin/python2
和#!/usr/bin/python3
而不是簡單地#!/usr/bin/python
。我明白這種方法的吸引力,你可以明確地說,如果你需要Python 2或3而不做一些奇怪的版本檢查。在腳本的shebang上,「python2」/「python3」是否安全?
難道這些python2
和python3
標準有關係嗎?他們會到處工作嗎?還是有風險?
我剛剛確認我有python2
和python3
但我在Cygwin上,所以我不認爲這意味着它對於很多其他人來說必然是相同的。
注:對於任何考慮#!/usr/bin/python
帶或不帶一個數字,要記住一個更重要的一點是,python
甚至不是總是/usr/bin
(FreeBSD和OSX爲例),因此,如果您使用#!/usr/bin/env python
想要最大的便攜性。
然後,只需祈禱env
是/usr/bin
。
你只要,如果你安裝了多個版本的Python,需要顯式調用一個或另一個。 –
值得一提的是,如果你希望在可執行目標上有更多的可移植性,你應該在你的shebang中使用'env'。不是每個python安裝都默認在'/ usr'中(我可以告訴你在FreeBSD和Mac OSX中不會發生這種情況)。 – farsil
@farsil感謝,我可以補充一點,我確實有一個問題,雖然有關shebangs使用'env',是'#!的/ usr/bin中/ env的...'正確或'env'安裝在同樣的不同位置? –