我使用自制程序安装了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
答案 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 python
和python -V
没有给我预期的结果。 h!我跑了:
. ~/.bash_profile
(我在其中放置了推荐的eval "$(pyenv init -)"
命令),突然间所有东西都按预期找到了路径和版本。