我正在尝试安装tensorflow,但它需要安装Python 3.6,而我只安装了Python 3.7。我试图使用brew和pyenv进行切换,但是它不起作用。
有人知道解决这个问题的方法吗?
答案 0 :(得分:24)
这是一个规范的总结,总结了运行 Python 的各种操作系统的不同解决方案。以下是Microsoft Windows、Linux、macOS 和其他的可能性。< /p>
如前所述,这些只是可能性 - 我绝不声称拥有完整列表。
一般情况下,建议使用虚拟环境(我强烈建议查看官方Python documentation)。使用这种方法,您可以轻松设置特定于项目的 Python 版本(以及库)。易于管理和最好的部分:互联网上有很多关于如何解决这个问题的教程:
1.) 打开命令提示符 ("cmd") 并输入 pip install virtualenv
。
2.) 通过 https://www.python.org/downloads/release; 安装您想要的 Python 版本 请记住:不要添加到 PATH
!
3.) 在命令提示符中输入:virtualenv \path\to\env -p \path\to\python_install.exe
,而 \path\to\env
应是您的虚拟环境所在的路径,而 \path\to\python_install.exe
一个新(大概)安装的 Python 版本所在的位置。
4.) 完成!您现在已经设置了一个虚拟环境!现在,要激活虚拟环境,请执行位于 \path\to\env\Scripts\activate.bat
中的批处理文件。 (参见 this website 或 official Python guide)
基本选项是卸载不需要的 Python 版本,然后从 https://www.python.org/downloads/ 重新安装喜欢的版本。要删除“旧”版本,请转到 Control Panel
-> "Uninstall a program"
-> Search for "Python"
-> Right-click on the Python name
-> Uninstall
。请记住,Python 通常存储了一个 PATH 变量,因此您也应该将其删除 - 请查看以下链接:
现在仔细检查是否还有用于存储 Python 的剩余文件。通常,您可以在 C:\Program Files (x86)\Pythonxx
、C:\Users\username\AppData\Local\Programs\Pythonxx
或 C:\Pythonxx
或全部位置找到所有 Python 文件。您可能已经将它安装在另一个目录中 - 检查它曾经在哪里。
现在,在卸载后,只需转到 download page 并按照通常的安装过程重新安装所需的版本。 I won't go into details on how to install Python.。最后,您可以通过打开命令提示符并输入 python -V
来检查当前安装的版本。
这种方法与第二种方法非常相似 - 您基本上卸载旧的并用您喜欢的版本替换它。唯一改变它的是关于如何卸载不需要的 Python 发行版的部分:只需执行您最初用于安装 Python 的 Python3 安装程序(它通常存储在您的 Python 目录中,如上所述;如需更多帮助,请查看 this )。在那里您可以选择 repair or uninstall
,继续选择 uninstall
,然后按照卸载程序提供的步骤进行操作。
无论您如何卸载 Python(关于此主题的资源很多,例如 this Stack Overflow question 或 problem thread 一个名为 Vincent Tang 的用户发布在Stack Exchange 站点超级用户等),只需按照 Option 2
中提到的步骤重新安装所需的 Python 版本。
选项 4 处理 Anaconda。有关如何在 Windows 上安装 Anaconda,请参阅 this site。 Step 9
很重要,因为您不想将其安装为默认 Python - 您想运行多个版本的 Python:
选择是否将 Anaconda 注册为默认 Python。除非您计划安装和运行多个版本的 Anaconda 或多个版本的 Python,否则请接受默认设置并选中此框。
按照我上面链接的官方教程进行操作。
完成后,您可以在 anaconda 提示符下单独创建以下命令:要覆盖默认的 Python 版本 system-wise 使用 conda install python=3.6
或创建虚拟环境继续使用 { {1}} 而 conda create -n $PYTHON36_ENV_NAME python=3.6 anaconda
是您可以设置的自定义名称。信用到期的信用 - 来自 this thread 的用户 @CermakM 强烈影响了此代码段。
在我的研究中,我遇到了一堆有用的 Stack Overflow 线程 - 如果您使用 Anaconda 走上艰难的道路,您可能会检查它们:
接下来的内容并不是经典意义上的降级 - 尽管为了完整起见,我也决定提及这种方法。在 Windows 上,您还可以运行多个 Python 版本 - StackOverflow 上的一个臭名昭著的线程处理这个问题,因此我礼貌地将您推荐给 there 以进一步阅读。
非常类似于 Windows 的第三个选项我强烈建议您使用虚拟环境,例如 Anaconda。 Anaconda - 或简称 conda - 也可在 Linux 上使用。查看官方安装文档here。再次强烈建议 this thread 如何覆盖 Python 版本,分别是如何使用您想要的 Python 版本专门创建环境。
另一个强烈推荐的虚拟环境是 $PYTHON36_ENV_NAME
。用户 @Sawan Vaidya 在 this Stack Overflow question 中描述了如何在 Pyenv
的帮助下升级或降级 Python 版本。您可以全局设置 Python 版本或创建本地环境 - 两者都在提到的线程中进行了解释。
另一个用户,即 @Jeereddy,建议使用软件包管理系统 Pyenv
。他在this current question中彻底解释了这个选项:
Homebrew
无需重新发明轮子 - this thread 充满了许多漂亮的跑步方法,例如 @Sidharth Taneja 的方法。
$ brew unlink python
$ brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/e128fa1bce3377de32cbf11bd8e46f7334dfd7a6/Formula/python.rb
$ brew switch python 3.6.5
。normal package
cd /Library/Frameworks/Python.framework/Version
以列出所有已安装的 Python 版本ls
,删除 Python 3.7 版 - 可以针对要删除的任何版本重复此操作sudo rm -rf 3.7
,它应该会显示您最初想要安装的版本什么是金矿this thread!正如 @nondetermistic 深入描述的那样(直接链接到 his post):
像这样安装 Python 源代码:
python3 -v
您现在可以将下载的版本 (#Taken Python 3.6 as an example
$ mkdir /home/<user>/python3.6
$ ./configure --prefix=/home/<user>/python3.6/
$ make altinstall
) 添加到 /home/<user>/python3.6/bin
以及将 PATH
添加到 lib
,或者仅通过以下方式创建虚拟环境:{ {1}}。一个非常美观且简单的解决方案,可在您的系统上运行多个 Python 版本。
将 LD_LIBRARY_PATH
与 /home/<user>/python3.6/bin/python3.6 -m venv env-python3.6
一起使用 - 感谢 @Shayan 的回复 here:
1.) 使用 pyenv
安装 Homebrew
:
pyenv
2.) 克隆 GitHub 存储库以获取最新的 Homebrew
版本:
brew update
brew install pyenv
3.) 定义环境变量如下
pyenv
4.) 重新启动 shell 使 git clone https://github.com/pyenv/pyenv.git ~/.pyenv
更改生效
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
5.) 检查可用的 Python 版本
PATH
6.) 安装所需的 Python 版本,例如3.6
exec "$SHELL"
7.) 全局设置(你也可以继续,只在特定环境下使用)
pyenv install --list
8.) 检查系统使用的 Python 版本 - 您想要/降级的版本应显示在此处。
pyenv install 3.6
与之前的方法类似,您也可以在 macOS 上下载 Anaconda。如需安装指南,请单击 here。用法与我在 pyenv global 3.6
指南的 python3 --version
中已经描述的几乎相同。请在上面查看。
在这种情况下,它变得非常重复。我建议您查看以下资源以进一步阅读:
在写这篇文章时,我遇到了不知道在哪里划线的问题。在查找 Python 当前支持的操作系统时,您会得到一个庞大的列表,包括我提到的那些,即 Linux、Microsoft Windows 和 macOS,尽管显然不同的 Linux 发行版是一手处理的,例如CentOS、Arch Linux 或 Fedora 也应该得到一席之地 - 还是我应该为 Windows 10、7 等做出单独的选择?
由于 Homebrew、Conda 等模块的高度重复性,我决定将我的列表限制在“主要的三个”操作系统 - Ubuntu (How do I downgrade my version of python from 3.7.5 to 3.6.5 on ubuntu)、CentOS ( How to downgrade python version on CentOS?) 可以很容易地在 Stack Overflow 上进行研究。大多数情况下,您可以从 Linux 标签中为上述发行版应用解决方案。 Windows 和 macOS(版本)也是如此。
答案 1 :(得分:13)
如果您正在使用Anaconda,则
conda install python=3.5.0
# or maybe
conda install python=2.7.8
# or whatever you want....
可能会工作。
答案 2 :(得分:12)
ia
答案 3 :(得分:2)
创建一个虚拟环境,安装并切换到python 3.6.5
$ conda create -n tensorflow python=3.7
$ conda activate tensorflow
$ conda install python=3.6.5
$ pip install tensorflow
当您想使用tensorflow时激活环境
答案 4 :(得分:2)
pyenv
可以在 Linux/MacOS 中用于 python 版本管理。 pyenv-win
是 pyenv
的 fork,可以在 Windows 上使用。
在 Mac Catalina 上测试
安装 pyenv
。
brew install pyenv
将以下内容添加到您的 shell 配置文件中:
.bashrc
/.bash_profile
- 用于 Bash.zshrc
- 对于 Zshexport PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
重启你的shell。启动一个新的 shell 或在当前的 shell 中运行 exec "$SHELL"
。
在 Arch Linux 上测试
在您的系统上安装 pyenv
。
curl https://pyenv.run | bash
按照与 MacOS 安装的第 2 步和第 3 步相同的步骤进行操作。
在 Windows 上安装 pyenv-win
。
在 Powershell 中
pip install pyenv-win --target "$HOME\.pyenv"
在 cmd.exe
pip install pyenv-win --target "%USERPROFILE%\.pyenv"
使用 Powershell/终端设置环境变量。
[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('path', $HOME + "\.pyenv\pyenv-win\bin;" + $HOME + "\.pyenv\pyenv-win\shims;" + $env:Path,"User")
关闭并重新打开您的终端。在终端上运行 pyenv --version
。
一个。如果返回值是安装的pyenv版本,那么继续下面。 湾如果收到命令未找到错误,请确保通过 GUI 正确设置环境变量:此 PC → 属性 → 高级系统设置 → 高级 → 环境变量... → PATH C。如果您收到未找到命令的错误,并且您正在使用 Visual Studio Code 或其他带有内置终端的 IDE,请重新启动它并重试。
从主目录运行 pyenv rehash
。
pyenv versions
示例
$ pyenv versions
* system (set by /home/souser/.pyenv/version)
3.6.9
pyenv install <version-number>
pyenv uninstall <version-number>
pyenv global <version-number> # <version-number> is the name assigned to your python in output of `pyenv versions`
示例
$ python --version
Python 3.9.1
$ pyenv global 3.6.9
$ python --version
Python 3.6.9
为目录及其所有子目录设置 python 版本
pyenv local <version-number> # <version-number> is the name assigned to your python in output of `pyenv versions`
示例
~/tmp/temp$ python --version
Python 3.9.1
~/tmp/temp$ pyenv local 3.6.9
~/tmp/temp$ python --version
Python 3.6.9
答案 5 :(得分:1)
从https://www.python.org/downloads/release/python-360/下载python 3.6.0
将其作为普通软件包安装。
运行cd /Library/Frameworks/Python.framework/Version
运行ls
命令,所有安装的Python版本将在此处可见。
运行sudo rm -rf 3.7
现在用python3 -V
检查版本,现在是3.6。
答案 6 :(得分:1)
一种干净的方法(无需卸载先前版本或恢复为Anaconda或docker等其他软件)是下载Python 3.6源代码并按以下方式安装:
$ mkdir /home/<user>/python3.6
$ ./configure --prefix=/home/<user>/python3.6/
$ make altinstall
要使用它,您可以:
将/home/<user>/python3.6/bin
添加到您的PATH
(并将lib
添加到LD_LIBRARY_PATH
)中并完成操作。 (您可能还需要将其添加到include路径等中,具体取决于您要实现的目标-但我希望您明白了。);
,或者您创建类似于以下内容的虚拟环境:/home/<user>/python3.6/bin/python3.6 -m venv env-python3.6
。
不需要sudo或root访问权限。不会弄乱您的系统。
答案 7 :(得分:0)
我在使用python 3.7安装tensorflow时遇到了麻烦,并按照以下说明使用python3.6进行了虚拟环境设置并使其正常工作
Download the Python3.6 tgz file from the official website (eg. Python-3.6.6.tgz)
Unpack it with tar -xvzf Python-3.6.6.tgz
cd Python-3.6.6
run ./configure
run make altinstall to install it (install vs altinstall explanation here
setting up python3.6 virtual environment for tensorflow
如果您正在使用jupyter笔记本电脑或jupyter实验室,这将有助于选择正确的虚拟环境
python -m venv projectname
source projectname/bin/activate
pip install ipykernel
ipython kernel install --user --name=projectname
这时,您可以启动jupyter,创建一个新笔记本,然后选择环境中的内核。
virtual environment and jupyter notebooks
希望这会有所帮助
答案 8 :(得分:0)
使用conda创建python虚拟环境,然后安装tensorflow:
$ conda create -n [environment-name] python=3.6
# it may ask for installing python-3.6 if you don't have it already. Type "y" to proceed...
$ activate [environment-name]
$ pip install tensorflow
从现在开始,只要您想使用张量流,就可以激活环境。
如果您没有conda程序包管理器,请先从此处下载:https://www.anaconda.com/distribution
答案 9 :(得分:0)
我刚才将Python 3.9降级为3.6,因为我想使用librosa软件包,但它现在仍不支持Python 3.9。
步骤-
在终端中运行python3 --version
,它将显示此版本的Python。
答案 10 :(得分:0)
下载并安装Python 3.6,然后将系统路径环境变量改为python 3.6的路径环境变量,删除python 3.7路径系统环境变量。重启电脑查看结果。
答案 11 :(得分:0)
如果您使用anaconda,您可以使用指定版本创建一个新环境。如果您不想保留现有的 3.7 版,您可以卸载它并从 here 安装它。
答案 12 :(得分:-1)
对于那些想要在其系统中添加多个Python版本的用户: 我可以通过运行以下命令轻松添加多个解释器: