2011-08-04 42 views
10

我用python_select,它似乎不會改變執行腳本的默認python,例如django-admin.py runserver(前面沒有python)。Macports選擇默認的Python解釋器來執行腳本?

我該如何改變?

+1

我認爲這可能會更好地放在超級用戶...... – thegrinner

+0

它可能會被.py文件中的第一行#''覆蓋。 –

+0

是的,實際上可以用'#!'覆蓋它,但是OP的問題是關於默認的Python解釋器的。 – fviktor

回答

19

/usr/bin/python,它通常比MacPort的二進制文件夾(/opt/local/bin/python)在路徑中更早(具有更高的優先級)。 python_select腳本僅更改/opt/local/bin/python,因此您必須確保您的路徑上沒有其他python二進制文件優先於它。

解決方案(如根):

mv /usr/bin/python /usr/bin/python.orig 
ln -s /opt/local/bin/python /usr/bin/python 
port select --set python python26 

確保您與您的預期Python版本的第三行替換python26

它在幾天前用MacPort 2.0.0工作。如果您有一個較舊的MacPorts庫,則應升級它或使用python_select而不是port select --set python

+2

更簡單和更安全的方法是將/ opt/local/bin提前放入PATH中。 要做到這一點,一旦你能在bash shell中的以下內容: '''出口PATH = /選擇/ local/bin目錄:$ PATH''' 或編輯〜/ .bash_profile中和行添加到結束的文件。 修改系統的Python就像破壞它一般是一個壞主意,您可能會破壞Mac上使用系統Python的任何實用程序或工具。 編輯:格式。 –

+0

@MickT:我做了你的建議,因爲我認爲這是一個更好的方法。我可以驗證'/ opt/local/bin'是否位於我的'PATH'變量的頂部,但是當我鍵入'which python'時,它會以'/ usr/local/bin/python'開始。任何想法爲什麼'哪個'給出與'PATH'不同的順序? – jvriesem

+0

@jvriesem如果/ usr/local/bin /''是你的路徑中的第一個,那麼''/ usr/local/bin/python'''將會首先被找到。我誤解了什麼嗎?如果是,請發佈以下內容: echo $ PATH –

相關問題