在Python上将Python 3安装到/ usr / bin /

时间:2016-10-08 02:20:53

标签: python macos python-3.x path

我使用自制程序安装了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

2 个答案:

答案 0 :(得分:1)

/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。 (See here

可能的替代方法是使用应该可访问的文件夹/usr/local/bin

答案 1 :(得分:0)

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没有给我预期的结果。 h!我跑了:

. ~/.bash_profile

(我在其中放置了推荐的eval "$(pyenv init -)"命令),突然间所有东西都按预期找到了路径和版本。