繁体   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