如何将python从3.7降级到3.6

时间:2018-10-01 05:14:54

标签: python python-3.x

我正在尝试安装tensorflow,但它需要安装Python 3.6,而我只安装了Python 3.7。我试图使用brew和pyenv进行切换,但是它不起作用。

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

13 个答案:

答案 0 :(得分:24)

这是一个规范的总结,总结了运行 Python 的各种操作系统的不同解决方案。以下是Microsoft WindowsLinuxma​​cOS其他的可能性。< /p>

如前所述,这些只是可能性 - 我绝不声称拥有完整列表。


微软视窗

选项 1

一般情况下,建议使用虚拟环境(我强烈建议查看官方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 websiteofficial Python guide

选项 2

基本选项是卸载不需要的 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 文件。您可能已经将它安装在另一个目录中 - 检查它曾经在哪里。

现在,在卸载后,只需转到 download page 并按照通常的安装过程重新安装所需的版本。 I won't go into details on how to install Python.。最后,您可以通过打开命令提示符并输入 python -V 来检查当前安装的版本。

选项 3

这种方法与第二种方法非常相似 - 您基本上卸载旧的并用您喜欢的版本替换它。唯一改变它的是关于如何卸载不需要的 Python 发行版的部分:只需执行您最初用于安装 Python 的 Python3 安装程序(它通常存储在您的 Python 目录中,如上所述;如需更多帮助,请查看 this )。在那里您可以选择 repair or uninstall,继续选择 uninstall,然后按照卸载程序提供的步骤进行操作。

无论您如何卸载 Python(关于此主题的资源很多,例如 this Stack Overflow questionproblem thread 一个名为 Vincent Tang 的用户发布在Stack Exchange 站点超级用户等),只需按照 Option 2 中提到的步骤重新安装所需的 Python 版本。

选项 4

选项 4 处理 Anaconda。有关如何在 Windows 上安装 Anaconda,请参阅 this siteStep 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 走上艰难的道路,您可能会检查它们:

选项 5

接下来的内容并不是经典意义上的降级 - 尽管为了完整起见,我也决定提及这种方法。在 Windows 上,您还可以运行多个 Python 版本 - StackOverflow 上的一个臭名昭著的线程处理这个问题,因此我礼貌地将您推荐给 there 以进一步阅读。


Linux

选项 1

非常类似于 Windows 的第三个选项我强烈建议您使用虚拟环境,例如 Anaconda。 Anaconda - 或简称 conda - 也可在 Linux 上使用。查看官方安装文档here。再次强烈建议 this thread 如何覆盖 Python 版本,分别是如何使用您想要的 Python 版本专门创建环境。

选项 2

另一个强烈推荐的虚拟环境是 $PYTHON36_ENV_NAME。用户 @Sawan Vaidyathis Stack Overflow question 中描述了如何在 Pyenv 的帮助下升级或降级 Python 版本。您可以全局设置 Python 版本或创建本地环境 - 两者都在提到的线程中进行了解释。

选项 3

另一个用户,即 @Jeereddy,建议使用软件包管理系统 Pyenv。他在this current question中彻底解释了这个选项:

Homebrew

选项 5

无需重新发明轮子 - this thread 充满了许多漂亮的跑步方法,例如 @Sidharth Taneja 的方法。

  1. https://www.python.org/downloads/release 下载您想要的 Python 版本并将其安装为 $ brew unlink python $ brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/e128fa1bce3377de32cbf11bd8e46f7334dfd7a6/Formula/python.rb $ brew switch python 3.6.5
  2. 运行normal package
  3. 执行 cd /Library/Frameworks/Python.framework/Version 以列出所有已安装的 Python 版本
  4. 运行 ls,删除 Python 3.7 版 - 可以针对要删除的任何版本重复此操作
  5. 选中sudo rm -rf 3.7,它应该会显示您最初想要安装的版本

选项 6

什么是金矿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 版本


macOS

选项 1

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

选项 2

与之前的方法类似,您也可以在 macOS 上下载 Anaconda。如需安装指南,请单击 here。用法与我在 pyenv global 3.6 指南的 python3 --version 中已经描述的几乎相同。请在上面查看。

其他选项

在这种情况下,它变得非常重复。我建议您查看以下资源以进一步阅读:


杂项

在写这篇文章时,我遇到了不知道在哪里划线的问题。在查找 Python 当前支持的操作系统时,您会得到一个庞大的列表,包括我提到的那些,即 LinuxMicrosoft Windowsma​​cOS,尽管显然不同的 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-winpyenv 的 fork,可以在 Windows 上使用。

安装

MacOS

在 Mac Catalina 上测试

  1. 安装 pyenv

    brew install pyenv
    
  2. 将以下内容添加到您的 shell 配置文件中:

    • .bashrc/.bash_profile - 用于 Bash
    • .zshrc - 对于 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/终端设置环境变量。

    [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版本,那么继续下面。 湾如果收到命令未找到错误,请确保通过 GUI 正确设置环境变量:此 PC → 属性 → 高级系统设置 → 高级 → 环境变量... → PATH C。如果您收到未找到命令的错误,并且您正在使用 Visual Studio Code 或其他带有内置终端的 IDE,请重新启动它并重试。

  4. 从主目录运行 pyenv rehash

用法

检查安装的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 存储库:pyenvpyenv-win

答案 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。

步骤-

  • 转到python官方网站
  • 下载所需的Python版本
  • 正常安装在您的计算机中

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

答案 10 :(得分:0)

下载并安装Python 3.6,然后将系统路径环境变量改为python 3.6的路径环境变量,删除python 3.7路径系统环境变量。重启电脑查看结果。

答案 11 :(得分:0)

如果您使用anaconda,您可以使用指定版本创建一个新环境。如果您不想保留现有的 3.7 版,您可以卸载它并从 here 安装它。

答案 12 :(得分:-1)

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

  • sudo apt更新
  • sudo apt install software-properties-common
  • sudo add-apt-repository ppa:deadsnakes / ppa
  • sudo apt安装python 3.x.x
  • 然后在让您的虚拟环境选择所需的解释器时。