簡體   English   中英

在 macOS 上將 Python 3 安裝到 /usr/bin/

[英]Install Python 3 to /usr/bin/ on macOS

我使用自制軟件安裝了 python2.x 和 python3.x,下面列出了可執行的 python 路徑:

$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python

$ which python3
/Library/Frameworks/Python.framework/Versions/3.5/bin/python3


在python代碼中編寫shebang以使其可在終端上運行太長而且不太干凈:

#!/Library/Frameworks/Python.framework/Versions/2.7/bin/python OR
#!/Library/Frameworks/Python.framework/Versions/3.5/bin/python3


我更喜歡

#!/usr/bin/python OR
#!/usr/bin/python3

我的問題是,如何將 macOS 上的 python 正確移動或重新安裝到/usr/bin,例如
/usr/bin/python/usr/bin/python3

而不是
/Library/Frameworks/Python.framework/Versions/2.7/bin/python /Library/Frameworks/Python.framework/Versions/3.5/bin/python3

這在 Mac OS X El Capitan 上不再可能,因為從那時起系統完整性保護會阻止這種情況。 即使是 sudo 也無法在 /usr/bin 中創建符號鏈接中的更多信息

/usr/bin/創建符號鏈接

打開終端並執行:

$ sudo ln /Library/Frameworks/Python.framework/Versions/2.7/bin/python /usr/bin/python
$ sudo ln /Library/Frameworks/Python.framework/Versions/3.5/bin/python3 /usr/bin/python3

你現在可以做你想做的事了。

編輯:不幸的是,正如您可以從其他答案中看到的那樣,由於系統完整性保護,此解決方案不再適用於 MacOS >= El Capitan。 見這里

一種可能的替代方法是使用應該可以訪問的文件夾/usr/local/bin

OP 中的基本問題似乎不可行,因為較新的 Mac OS 具有“系統完整性保護”,可防止對關鍵目錄(如/usr/bin “未經授權”的更改,而sudo無法覆蓋它。

使用/usr/local/bin/usr/local/Frameworks似乎應該可行(我還沒有嘗試過)。 但是,在https://opensource.com/article/19/5/python-3-default-mac ,Matthew Broberg 建議更新時可能會產生問題。

在同一篇文章中,Moshe Zadka 建議使用pyenv來管理 Python 環境並使用 shell 別名而不是符號鏈接。

我打算采用上面的/usr/local建議,但是發現了這個禁忌症,我打算嘗試 Moshe 的方法。 如果我遇到任何障礙,我會在這里報告。

更新:我遵循了該方法,但仍然找不到pip並且which pythonpython -V沒有給我預期的結果。 哦! 我跑了:

. ~/.bash_profile

(我在其中放置了推薦的eval "$(pyenv init -)"命令),突然間一切都按預期找到了路徑和版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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