2017-07-20 90 views
0

在我的macOS電腦上,我在/ usr/local/bin中安裝了使用Homebrew的python。在新開的終端中,我有爲什麼我的python可執行文件不默認爲/ usr/local/bin?

$ echo $PATH | sed 's/:/\n/g' 
/usr/local/mysql/bin 
/usr/local/bin 
/Users/qazwsx/.local/bin 
/Library/TeX/texbin 
/Applications/Xcode.app/Contents/Developer/usr/bin 
/Users/qazwsx/bin 
/usr/bin 
/bin 
/usr/sbin 
/sbin 
/usr/local/sbin 

正如你可以看到/ usr/local/bin出現在/ usr/bin之前。但不知何故python找到默認的!?爲什麼?

$ which python 
/usr/bin/python 
+0

'echo $ PATH | sed's /:/ \ n/g''真的可以在MacOS上使用嗎?因爲這根本不適合我。 –

+0

您是否正在進行必要的調整並導出bash_profile中的PATH?你完成後是否收集它? –

+0

'$ ls -l/usr/local/bin/python'會顯示什麼? '$ type python'如何? –

回答

-2

解決此問題的方法是重命名舊的python併爲您的版本創建符號鏈接。

mv /usr/bin/python /usr/bin/python.0 
ln -s /usr/local/bin/python /usr/bin/python 

至於爲什麼它沒有違約,不知道。這可能是一些事情..也許有一個符號鏈接到另一個目錄中的上方的另一個目錄中,which命令可能會使用不同的路徑,或者您從不同的shell環境中調用它並使用不同的路徑設置?

+0

從El Capitan(OS X v10.11)開始,[系統完整性保護](https://apple.stackexchange.com/questions/193368/what-is-the-rootless-feature-in-el-capitan-really )禁止在/ usr/bin(以及其他一些系統目錄)中進行修改,即使以root用戶身份進行修改。即使在早期版本中,在/ usr/bin中更改內容也不是一個好主意 - 例如,有很多用Python編寫的系統腳本,如果換入不同的版本(特別是版本3),其中一些可能會中斷。隨機系統組件停止工作並不好。 –

+0

蘋果試圖控制環境中的所有東西的另一個例子:(甚至認爲他使用的是他們從開源社區搶走的操作系統。 –

2

/usr/local/bin/python可能不存在。我注意到最近在我的macOS電腦上,升級了Homebrew後,不再有/usr/local/bin/python。當我使用brew reinstall python重新安裝python時,它警告添加/usr/local/opt/python/libexec/bin/$PATH。重新安裝後,確實有一個/usr/local/opt/python/libexec/bin/python,但不是/usr/local/bin/python了。還有/usr/local/bin/python2/usr/local/bin/python3

相關問題