![](/img/trans.png)
[英]How to install python scipts to /usr/local/bin on macos?
[英]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 python
和python -V
没有给我预期的结果。 哦! 我跑了:
. ~/.bash_profile
(我在其中放置了推荐的eval "$(pyenv init -)"
命令),突然间一切都按预期找到了路径和版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.