在Mac上同时安装Python3.6和Python3.7

76

我正在尝试在Python3.7的Mac上安装TensorFlow,但是遇到了以下错误:

$ pip3 -v install tensorflow
...    
    Skipping link https://files.pythonhosted.org/packages/56/7a/c6bca0fe52a94ca508731d8b139e7dbd5a36cddc64c19f422f97e5a853e8/tensorflow-1.10.0rc1-cp36-cp36m-win_amd64.whl#sha256=3ab24374888d6a13d55ce2e3cf4ba0c9cd6f824723313db5322512087525cb78 (from https://pypi.org/simple/tensorflow/); it is not compatible with this Python
  Could not find a version that satisfies the requirement tensorflow (from versions: )
Cleaning up...
Removed build tracker '/private/var/folders/4n/9342s4wd3jv0qzwjz8rxrygr0000gp/T/pip-req-tracker-3p60r2lo'

No matching distribution found for tensorflow

据我所了解,这是因为tensorflow尚不支持Python3.7而导致的。为了解决问题,我想安装Python3.6并在那个版本上安装tensorflow。但是,我对Mac还不太熟悉,并不确定正确的方法,以免影响预先存在的Python版本。

我尝试使用brew,但似乎Python3已经是最具体的版本了。请问有什么正确的方法可以做到我要达到的效果吗?

3个回答

154

如果已经在使用 Python 3,请尝试使用 brew

$ brew unlink python

然后安装 Python 3.6.5

$ brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb

要回到Python 3.7.4_1版本,请使用以下命令:

$ brew switch python 3.7.4_1

如果需要再次使用3.6,请使用以下切换操作:

$ brew switch python 3.6.5_1

我收到错误信息 Error: No such keg: /usr/local/Cellar/python - Sebastian
10
我添加了 "--ignore-dependencies" 让它能够工作(使用 sphinx-doc 时出现了递归依赖错误): brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb - Vincent J
3
有没有Python 3.6.7的brew公式链接?Python 3.6.5存在一些严重问题- https://bugs.python.org/issue24658,应该避免安装它! - loretoparisi
由于某些原因,我的使用python3.6的网络在macOS Catalina与zsh上无法正常工作,所以我运行了以下命令:$ brew doctor && brew missing,它告诉我由于某种原因没有安装openssl库,然后我使用以下命令安装了它:$ brew install openssl - Alexandr S.
错误:不支持从 GitHub 提交 URL 安装 Python!请改用 brew extract python 在 GitHub 上的稳定存储库进行安装。 - Smit
显示剩余4条评论

50

如果您正在使用Mac,可以从Brew安装pyenv,安装所需的版本,列出已安装的版本,然后在本地或全局激活每个版本。

brew install pyenv
pyenv install 3.6.9
pyenv install 3.7.4    
pyenv versions
pyenv global 3.7.4 3.6.9
$ python3.6 --version 
Python 3.6.9 

$ python3.7 --version
Python 3.7.4

注意: 全局激活只有在重启计算机后才能生效。您需要将$(pyenv root)/shims放在PATH环境变量的左侧


我以前没有使用过 pyenv。在最后一个命令之后我该怎么做?python36 myscript.pypython3.7 myscript.py 都失败了。 - falsePockets
1
添加,答案是在PATH前面加上$(pyenv root)/shims。我会更新答案以反映这一点。 - falsePockets
8
完全按照@SaravanakumarG建议的做法毁掉了我的终端,我再也无法使用任何命令了。正确的方法是export PATH="$(pyenv root)/shims:$PATH" - Raphael Royer-Rivard
2
如果您按照@SaravanakumarG的建议错误地搞乱了您的PATH,请在终端中运行PATH=/bin:/usr/bin,修复导出语句,然后再次源化文件。source ~/.bash_profile - Ahmed Kamal
2
在 M1 Mac 上使用 pyenv install 3.6.9 遇到了问题。 - Omar Shabab
显示剩余2条评论

12

当你尝试更改系统Python版本时,我强烈建议使用pyenv - 它会让生活变得轻松很多。你只需运行以下代码:

brew install pyenv
pyenv install 3.6.5
pyenv install 3.7.4

然后您可以运行 pyenv local [python版本]



这似乎无法覆盖系统安装的Python版本。 - 김선달

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接