如何将 python 从3.7降级到3.6

我正在尝试安装 tensorflow,但它需要安装 Python 3.6,而我只安装了 Python 3.7。我试过用啤酒和催眠药来换,但是没用。

有人知道解决这个问题的办法吗?

523123 次浏览

我在使用 python3.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

为张量流建立 python3.6虚拟环境

如果您正在使用木星笔记本或木星实验室,这可以有助于选择正确的虚拟环境

python -m venv projectname
source projectname/bin/activate
pip install ipykernel
ipython kernel install --user --name=projectname

此时,您可以启动 jupyter,创建一个新的笔记本,并选择生活在您的环境中的内核。

虚拟环境和木星笔记本

希望这个能帮上忙

$ 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

如果你和水蟒合作

conda install python=3.5.0
# or maybe
conda install python=2.7.8
# or whatever you want....

可能有用。

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现在。

创建一个虚拟环境,安装后切换到 python3.6.5

$ conda create -n tensorflow python=3.7
$ conda activate tensorflow
$ conda install python=3.6.5
$ pip install tensorflow

当你想使用张量流时,激活环境

使用 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

一个干净的方法是下载 Python 3.6源代码并按如下方式安装,而不必卸载之前的版本或者恢复到其他软件,如 Anaconda 或 docker 等:

$ 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 访问权限,也不会弄乱系统。

对于那些希望在系统中添加多个 Python 版本的用户: 通过运行以下命令,我可以轻松地添加多个解释器:

  • Sudo apt 更新
  • Sudo apt install software-properties-common
  • Sudo add-apt-itory ppa:
  • Sudo apt install python 3.x. x
  • 然后在制作虚拟环境的同时,选择您所选择的解释器。

我刚刚将 Python 3.9降级到3.6,因为我想使用 librosa 包,但是它现在仍然不支持 Python 3.9。

步骤-

  • 去巨蟒官方网站
  • 下载所需的 Python 版本
  • 正常安装在您的机器

在终端中运行 python3 --version,它将显示这个版本的 Python。

我只是建议创建一个新的虚拟环境,并从一开始就安装所有的包,因为一些包的轮子可能已经安装在 Python 的早期版本中。我相信这是最安全的方法,你有两个选择。

  1. 使用 venv创建一个新的虚拟环境:

    python3.6 -m venv -n new_env
    source venv_env/bin/activate
    
  2. 创建 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 path 系统环境变量。重新启动电脑查看结果。

下面是一个规范的摘要,它总结了运行 Python 的各种操作系统的不同解决方案。以下是 微软视窗LinuxMacOSMisc的可能性。

如前所述,这些只是 可能性-决不是我声称有一个完整的名单无论如何。


微软视窗

选择一

通常,建议使用虚拟环境(我强烈建议查看官方的 Python 文档)。使用这种方法,您可以轻松地设置特定于项目的 Python 版本(以及库)。易于管理且是最好的部分: 在互联网上有很多关于如何处理这个问题的教程:

) 打开命令提示 (“ cmd”)并输入 pip install virtualenv

2) 通过 https://www.python.org/downloads安装您想要的 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)\PythonxxC:\Users\username\AppData\Local\Programs\PythonxxC:\Pythonxx或所有这些地方找到所有 Python 文件。您可能已经将它安装在另一个目录中-请检查它曾经的位置。

现在卸载后,只需重新安装想要的版本,转到 下载页,并按照通常的安装过程。我不会详细介绍如何安装 Python.最后,您可以通过打开命令提示符并键入 python -V来检查当前安装的版本。

选择三

这种方法与第二种方法非常相似——您基本上卸载了旧版本,并用您喜欢的版本替换它。关于如何卸载不需要的 Python 发行版,唯一改变它的地方是: 只需执行最初用于安装 Python 的 Python 3安装程序(它通常存储在上面提到的 Python 目录中; 如需更多帮助,请查看 这个)。在那里,您可以选择 repair or uninstall,继续选择 uninstall,并遵循通过卸载程序提供的步骤。

无论你如何卸载 Python (关于这个主题有很多资源,例如 这个堆栈溢出问题问题线索,一个在 Stack Exchange 站点 Super User 上发布的名为 文森特 · 唐的用户,等等) ,只需按照 Option 2中提到的步骤重新安装想要的 Python 版本。

选择四

选择4处理水蟒。关于如何在 Windows 上安装 Anaconda,请参考 这个网站Step 9很重要,因为你不想把它作为默认 Python 安装——你想运行 Python 的多个版本:

选择是否将 Anaconda 注册为默认 Python。除非您计划安装和运行多个版本的 Anaconda 或多个版本的 Python,否则接受默认值并选中此复选框。

请按照我上面链接的官方教程进行操作。

完成之后,您可以在蟒蛇提示符中单独创建以下命令: 要覆盖默认的 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 上的一个臭名昭著的线程就处理这个问题,因此,为了进一步的阅读,我礼貌地推荐你使用 那里


Linux

选择一

非常类似于 Windows 的第三个选项,我强烈建议您使用一个虚拟环境,比如 Anaconda。Anaconda-或者短 conda-也可以在 Linux 上使用。检查官方安装文档 给你。我们再次强烈建议 这根线如何覆盖 Python 版本,以及如何使用所需的 Python 版本专门创建环境。

选择二

另一个推荐的虚拟环境是 Pyenv。用户 @ Sawan Vaidya这个堆栈溢出问题中描述了如何在 Pyenv的帮助下升级或降级 Python 版本。您可以在全局范围内设置 Python 版本,也可以创建本地环境——这两种方法都在前面提到的线程中解释过。

选择三

另一个用户,即 @ 杰瑞迪,建议使用软件包管理系统 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

  1. https://www.python.org/downloads/release下载您想要的 Python 版本,并将其安装为 normal package
  2. 运行 cd /Library/Frameworks/Python.framework/Version
  3. 执行 ls以列出所有已安装的 Python 版本
  4. 运行 sudo rm -rf 3.7,删除 Python 版本3.7-可以重复任何你想删除的版本
  5. 选中 python3 -v,它应该显示您最初想要安装的版本

选择6

这根线是一座金矿! 正如 @ 不确定所深入描述的(直接链接到 他的职位) :

安装 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 版本在您的系统上。


MacOS

选择一

使用 pyenvHomebrew-信贷到 @ Shayan与他的答复 给你:

1) 使用 Homebrew安装 pyenv:

brew update
brew install pyenv

克隆 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 上下载 水蟒。有关安装指南,请单击 给你。其用法与我在 Windows指南的 Option 4中所描述的大致相同。请查看以上内容。

其他选择

在这种情况下,它变得相当重复。我好心地建议你检查以下资源,以便进一步阅读:


Misc

在写这篇文章的时候,我不知道该如何划定界限。当你查找 Python 目前支持的操作系统时,你会得到一个巨大的列表,包括我提到的那些,如 Linux微软视窗MacOS,尽管很明显不同的 Linux 发行版是单独处理的,例如 CentOS,Arch Linux 或 Fedora 也应该得到一个位置-或者我应该为 Windows 10,7等制定单独的选项。?

由于家酿、 Conda 等模块的高度重复性,我决定将我的列表限制在“主要的三个”操作系统——像 Ubuntu (如何在 ubuntu 上将我的 python 版本从3.7.5降级到3.6.5)、 CentOS (如何在 CentOS 上降级 Python 版本?)这样的发行版可以很容易地在 Stack Overflow 上研究。大多数情况下,您可以从 Linux选项卡中为所述发行版应用解决方案。Windows 和 macOS (版本)也是如此。

pyenv 可以在 Linux/MacOS 中用于 Python 版本管理。pyenv-win是可以在 Windows 上使用的 pyenv的分支。

安装

MacOS

在 Mac Catalina 身上试验过

  1. 安装 pyenv

    brew install pyenv
    
  2. 在 shell 配置文件中添加以下内容:

    • .bashrc/.bash_profile-Bash
    • 为了 Zsh
    export PYENV_ROOT="$HOME/.pyenv"
    export PATH="$PYENV_ROOT/bin:$PATH"
    eval "$(pyenv init -)"
    
  3. 重新启动 shell。启动一个新的 shell 或在当前 shell 中运行 exec "$SHELL"

Linux 子系统上的 Linux/Windows

在 Arch Linux 上测试

  1. 在系统上安装 pyenv

    curl https://pyenv.run | bash
    
  2. 按照安装 MacOS 的步骤2和步骤3执行相同的步骤。

窗户

  1. 在 Windows 上安装 pyenv-win

    在 Powershell

    pip install pyenv-win --target "$HOME\.pyenv"
    

    在 cmd.exe

    pip install pyenv-win --target "%USERPROFILE%\.pyenv"
    
  2. 使用 Powershell/Terminal 设置环境变量。

    [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")
    
  3. 关闭并重新打开终端。在终端上运行 pyenv --version

    如果返回值是安装的 pyenv 版本,则继续下面的操作。 B.如果您收到一个命令 not found error,请确保环境变量通过 GUI 正确设置: 此 PC →属性→高级系统设置→高级→环境变量... → PATH C.如果收到命令“未找到”错误,并且正在使用 VisualStudio 代码或其他具有内置终端的 IDE,请重新启动该命令,然后再试一次。

  4. 从主目录运行 pyenv rehash

Usage

检查已安装的 python 版本

pyenv versions

例子

$ pyenv versions
* system (set by /home/souser/.pyenv/version)
3.6.9

安装了特定的 Python 版本

pyenv install <version-number>

卸载已安装的 python 版本

pyenv uninstall <version-number>

将 python 版本设置为系统范围的 python 版本

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

有关详细信息,可以查看 Github 回购协议: PenenvPyenv-win

如果使用蟒蛇,只需创建一个具有指定版本的新环境。如果您不想保留现有的3.7版本,只需卸载它并从 给你安装即可。

对我来说,简单的解决方案是从这里下载 python 3.7 https://www.python.org/downloads/release/python-370/,然后在 PyCharm 中修改它。