[英]How to downgrade python from 3.7 to 3.6
我正在尝试安装 tensorflow,但它需要安装 Python 3.6,而我只安装了 Python 3.7。 我尝试使用BREW和pyenv切换,但它不能正常工作。
有谁知道解决这个问题的方法?
$ brew unlink python
$ brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/e128fa1bce3377de32cbf11bd8e46f7334dfd7a6/Formula/python.rb
$ brew switch python 3.6.5
$ pip install tensorflow
如果您正在使用 Anaconda,那么
conda install python=3.5.0
# or maybe
conda install python=2.7.8
# or whatever you want....
可能工作。
这是一个规范的摘要,它总结了运行 Python 的各种操作系统的不同解决方案。 以下是Microsoft Windows 、 Linux 、 macOS和Misc 的可能性。
如前所述,这些只是可能性- 我绝不声称拥有完整的清单。
一般来说,建议使用虚拟环境(我强烈建议查看官方Python 文档)。 使用这种方法,您可以轻松设置特定于项目的 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
的批处理文件。 (参见 本网站或官方 Python 指南)
基本选项是卸载不需要的 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 文件。 您可能已经将它安装在另一个目录中 - 检查它曾经在哪里。
现在,卸载后只需转到下载页面并按照通常的安装过程重新安装所需的版本。 我不会详细介绍如何安装 Python。 . 最后,您可以通过打开命令提示符并输入python -V
来检查当前安装的版本。
这种方法与第二种方法非常相似 - 您基本上卸载旧的并用您喜欢的版本替换它。 唯一改变它的是关于如何卸载不需要的 Python 发行版的部分:只需执行您最初用于安装 Python 的 Python3 安装程序(它通常存储在您的 Python 目录中,如上文所述;如需更多帮助,请查看此)。 在那里您可以选择repair or uninstall
,选择uninstall
继续,然后按照卸载程序提供的步骤进行操作。
无论您如何卸载 Python(关于此主题的资源很多,例如这个 Stack Overflow 问题或一个名为Vincent Tang的用户发布在 Stack Exchange 站点超级用户上的问题线程等),只需重新安装想要的按照Option 2
提到的步骤更新 Python 版本。
选项 4 处理 Anaconda。 请参阅此站点以了解如何在 Windows 上安装 Anaconda。 Step 9
很重要,因为您不想将其安装为默认 Python - 您想运行多个版本的 Python :
选择是否将 Anaconda 注册为默认 Python。 除非您计划安装和运行多个版本的 Anaconda 或多个版本的 Python,否则请接受默认设置并选中此框。
按照我上面链接的官方教程进行操作。
完成后,您可以在 anaconda 提示符下单独创建以下命令:要覆盖默认的 python 版本系统,请使用conda install python=3.6
或创建虚拟环境继续使用conda create -n $PYTHON36_ENV_NAME python=3.6 anaconda
而$PYTHON36_ENV_NAME
是您可以设置的自定义名称。 信用到期的信用-来自该线程的用户@CermakM强烈影响了此代码段。
在我的研究中,我遇到了一堆有用的 Stack Overflow 线程——如果你使用 Anaconda 走上艰难的道路,你可能会检查它们:
下面的内容并不是经典意义上的降级——尽管为了完整性,我也决定提及这种方法。 在 Windows 上,您还可以运行多个 Python 版本 - StackOverflow 上一个臭名昭著的线程处理这个问题,因此我礼貌地将您推荐到那里以供进一步阅读。
与 Windows 的第三个选项非常相似,我强烈建议您使用诸如 Anaconda 之类的虚拟环境。 Anaconda - 或简称 conda - 也可在 Linux 上使用。 在此处查看官方安装文档。 再次强烈建议此线程如何覆盖 Python 版本,分别是如何使用所需的 Python 版本专门创建环境。
另一个强烈推荐的虚拟环境是Pyenv
。 用户@Sawan Vaidya在这个 Stack Overflow 问题中描述了如何在Pyenv
的帮助下Pyenv
或降级 Python 版本。 您可以全局设置 Python 版本或创建本地环境 - 两者都在提到的线程中进行了解释。
另一位用户@Jeereddy建议使用软件包管理系统Homebrew
。 他在这个当前问题中彻底解释了这个选项:
$ brew unlink python
$ brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/e128fa1bce3377de32cbf11bd8e46f7334dfd7a6/Formula/python.rb
$ brew switch python 3.6.5
无需重新发明轮子 - 该线程充满了许多漂亮的跑步方法,例如@Sidharth Taneja 的方法。
normal package
。cd /Library/Frameworks/Python.framework/Version
ls
列出所有已安装的 Python 版本sudo rm -rf 3.7
,删除 Python 3.7 版 - 可以为要删除的任何版本重复python3 -v
,它应该显示您最初想要安装的版本这个线程是什么金矿! 正如@nondetermistic深入描述的那样(直接链接到他的帖子):
安装 Python 源代码,如下所示:
#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
到LD_LIBRARY_PATH
或仅通过以下方式创建虚拟环境: /home/<user>/python3.6/bin/python3.6 -m venv env-python3.6
。 在您的系统上运行多个 Python 版本的非常美观且简单的解决方案。
使用pyenv
与Homebrew
-信用@Shayan与他的答复这里:
1.)使用Homebrew
安装pyenv
:
brew update
brew install pyenv
2.)克隆 GitHub 存储库以获取最新的pyenv
版本:
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
3.)定义环境变量如下
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
4.)重新启动 shell 以便PATH
更改有效
exec "$SHELL"
5.)检查可用的 Python 版本
pyenv install --list
6.)安装想要的 Python 版本,例如 3.6
pyenv install 3.6
7.)全局设置(你也可以只在特定环境下使用)
pyenv global 3.6
8.)检查系统正在使用的 Python 版本 - 您想要/降级的版本应显示在此处。
python3 --version
与之前的方法类似,您也可以在 macOS 上下载Anaconda 。 如需安装指南,请单击此处。 用法与我在Windows
指南的Option 4
中已经描述的几乎相同。 请查看上面的内容。
在这种情况下,它变得非常重复。 我建议您查看以下资源以进一步阅读:
在写这篇文章时,我遇到了不知道在哪里划线的问题。 在查找 Python 当前支持的操作系统时,您会得到一个庞大的列表,包括我提到的那些,即Linux 、 Microsoft Windows和macOS ,尽管显然不同的 Linux 发行版是单独处理的,例如 CentOS、Arch Linux 或 Fedora 应该值得一试也可以点 - 还是我应该为 Windows 10、7 等制作单独的选项?
由于 Homebrew、Conda 等模块的高度重复性,我决定将我的列表限制在“主要的三个”操作系统 - 像 Ubuntu 这样的发行版( 如何将我的 python 版本从 3.7.5 降级)在 ubuntu 上升级到 3.6.5 ),可以在 Stack Overflow 上轻松研究 CentOS( 如何在 CentOS 上降级 python 版本? )。 大多数情况下,您可以从Linux选项卡中为上述发行版应用解决方案。 Windows 和 macOS(版本)也是如此。
创建一个虚拟环境,安装然后切换到python 3.6.5
$ conda create -n tensorflow python=3.7
$ conda activate tensorflow
$ conda install python=3.6.5
$ pip install tensorflow
当您想要使用 tensorflow 时激活环境
从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。
使用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
从现在开始,您可以随时使用 tensorflow激活环境。
如果您没有 conda 包管理器,请先从这里下载: https : //www.anaconda.com/distribution
我在使用 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
如果您使用的是 jupyter notebook 或 jupyter lab,这有助于选择正确的虚拟环境
python -m venv projectname
source projectname/bin/activate
pip install ipykernel
ipython kernel install --user --name=projectname
此时,您可以启动 jupyter,创建一个新笔记本并选择位于您的环境中的内核。
希望这可以帮助
一种无需卸载以前版本或恢复到其他软件(如 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
)并完成它。 (您可能还需要添加到包含路径等中,具体取决于您要实现的目标 - 但我希望您明白了。);
或者,您创建一个类似于以下内容的虚拟环境: /home/<user>/python3.6/bin/python3.6 -m venv env-python3.6
。
不需要 sudo 或 root 访问权限。 不要搞乱你的系统。
pyenv
可以在 Linux/MacOS 中用于 python 版本管理。 pyenv-win
是pyenv
,可以在 Windows 上使用。
在 Mac Catalina 上测试
安装pyenv
。
brew install pyenv
将以下内容添加到您的 shell 配置文件中:
.bashrc
/ .bash_profile
- 用于 Bash.zshrc
- 对于 Zsh export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)"
重新启动你的外壳。 启动一个新的 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 版本
~/tmp/temp$ python --version
Python 3.9.1
~/tmp/temp$ pyenv local 3.6.9
~/tmp/temp$ python --version
Python 3.6.9
例子
~/tmp/temp$ python --version Python 3.9.1 ~/tmp/temp$ pyenv local 3.6.9 ~/tmp/temp$ python --version Python 3.6.9
我只是建议创建一个新的虚拟环境并从一开始就安装所有包,因为某些包的轮子可能已经为以前版本的 Python 安装了。 我相信这是最安全的方法,您有两种选择。
使用venv
创建一个新的虚拟环境:
python3.6 -m venv -n new_env source venv_env/bin/activate
创建conda
环境:
conda create -n new_env python=3.6 conda activate new_env
您在环境中安装的包是基于该环境的 Python 版本构建的,如果您不仔细修改现有环境,则可能会导致包之间存在一些不兼容。 这就是为什么我建议使用使用 Python 3.6 构建的新环境。
下载并安装Python 3.6,然后将系统路径环境变量更改为python 3.6的环境变量并删除python 3.7路径系统环境变量。 重启电脑查看结果。
如果您使用anaconda,您可以使用指定的版本创建一个新环境。 如果您不想保留现有的 3.7 版,您可以卸载它并从这里安装它。
对我来说,简单的解决方案是从这里下载 python 3.7 https://www.python.org/downloads/release/python-370/然后在 PyCharm 中更改它。
对于那些想要在他们的系统中添加多个 Python 版本的人:我通过运行以下命令轻松添加多个解释器:
我刚刚将我的 Python 3.9 降级到 3.6,因为我想使用 librosa 包,但它现在仍然不支持 Python 3.9。
脚步 -
在终端中运行python3 --version
,它将显示此版本的 Python。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.