【问题标题】:How to downgrade python from 3.7 to 3.6如何将python从3.7降级到3.6
【发布时间】:2019-03-06 04:43:54
【问题描述】:

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

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

【问题讨论】:

  • 我推荐你使用Anaconda。然后为每个新项目create new environment 并在使用前激活它。在您的情况下,conda create -n myenv python=3.6source activate myenv
  • 升级张量流。 TensorFlow 1.14 和 1.15 支持 Python 3.7(及更早版本),TensorFlow 2.2 支持 Python 3.8

标签: python python-3.x


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    如上所述,这些只是可能性 - 我绝不声称拥有完整的清单。


    微软视窗

    选项 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 网站 Super用户等),只需按照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 或创建虚拟环境继续使用conda create -n $PYTHON36_ENV_NAME python=3.6 anaconda$PYTHON36_ENV_NAME 是您可以设置的自定义名称。信用到期 - 来自this thread 的用户 @CermakM 强烈影响了这个 sn-p。

    在我的研究中,我遇到了一堆有用的 Stack Overflow 线程——如果你用 Anaconda 走艰难的道路,你可以看看它们:

    选项 5

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


    Linux

    选项 1

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

    选项 2

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

    选项 3

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

    $ brew unlink python
    $ brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/e128fa1bce3377de32cbf11bd8e46f7334dfd7a6/Formula/python.rb
    $ brew switch python 3.6.5
    

    选项 5

    无需重新发明轮子 - this thread 充满了许多漂亮的跑步方法,例如 @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

    this thread 真是一座金矿!正如 @nondetermistic 所深入描述的那样(直接链接到 his post):

    像这样安装 Python 源代码:

    #Taken Python 3.6 as an example
    $ mkdir /home/<user>/python3.6
    $ ./configure --prefix=/home/<user>/python3.6/
    $ make altinstall
    

    您现在可以将下载的版本 (/home/&lt;user&gt;/python3.6/bin) 添加到 PATH 以及将 lib 添加到 LD_LIBRARY_PATH 或通过以下方式创建虚拟环境:/home/&lt;user&gt;/python3.6/bin/python3.6 -m venv env-python3.6。一个非常美观且简单的解决方案,可在您的系统上运行多个 Python 版本


    macOS

    选项 1

    使用pyenvHomebrew - 感谢@Shayan 他的回复here

    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
    

    选项 2

    与以前的方法类似,您也可以在 macOS 上下载 Anaconda。如需安装指南,请单击here。用法与我在Windows 指南的Option 4 中描述的几乎相同。请在上面查看。

    其他选项

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


    杂项

    在写这篇文章时,我遇到了不知道在哪里画线的问题。在查找 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 (@987654355) 等发行版@) 可以很容易地在 Stack Overflow 上进行研究。通常情况下,您可以从 Linux 选项卡为上述发行版应用解决方案。 Windows 和 macOS(版本)也是如此。

    【讨论】:

    • @moonman239 如果我的解决方案符合您的标准,请告诉我。不要犹豫,提出任何问题,或者让我知道我是否会更深入地讨论某些主题。
    • @JMArnold:看起来你涵盖了所有的基础。谢谢!我正在使用 Windows,从缺乏基于 Windows 的答案来看,这似乎是少数 Python 用户。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      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 中运行 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的安装版本,那么下面继续。 湾。如果您收到命令未找到错误,请确保通过 GUI 正确设置环境变量:此 PC → 属性 → 高级系统设置 → 高级 → 环境变量... → PATH C。如果您收到 command not found 错误,并且您正在使用 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

      【讨论】:

      • 错字? export PYENV_ROOT="${HOME}/.pyenv"
      • bashzsh shell 中我的shell 上都能正常工作。
      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

        我只建议创建一个新的虚拟环境并从一开始就安装所有包,因为某些包的轮子可能已经为以前版本的 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 构建的新环境。

        【讨论】:

          【解决方案7】:

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

          步骤-

          • 进入python官网
          • 下载所需的 Python 版本
          • 在你的机器上正常安装

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

          【讨论】:

            【解决方案8】:

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

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

            【讨论】:

              【解决方案9】:

              无需卸载以前的版本或恢复到其他软件(如 Anaconda 或 docker 等)的干净方法是下载 Python 3.6 源代码并按如下方式安装:

              $ mkdir /home/<user>/python3.6
              $ ./configure --prefix=/home/<user>/python3.6/
              $ make altinstall
              

              您也可以使用它:

              • /home/&lt;user&gt;/python3.6/bin 添加到您的PATH(以及libLD_LIBRARY_PATH)并完成它。 (您可能还需要添加到您的包含路径等,具体取决于您想要实现的确切目标 - 但我希望您明白这一点。);

              • 或者,您创建一个类似于此的虚拟环境:/home/&lt;user&gt;/python3.6/bin/python3.6 -m venv env-python3.6

              无需 sudo 或 root 访问权限。不会弄乱您的系统。

              【讨论】:

              【解决方案10】:
              $ 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
              

              【讨论】:

              • 这很好用,但我建议在pip install tensorflow 之前创建一个 virtualenv 或 conda env,然后激活它,最后使用 pip install tensorflow
              • 如果你之前有这个python版本并且已经升级到更高版本(并且没有使用$ brew cleanup命令),你可以跳过前两行
              • 什么是brew?我不能用 apt 吗?
              • 小心。这可以搞砸一切,什么也解决不了
              • 我收到此错误:调用brew switch 已禁用!请改用 brew link @-versioned 公式。酿造链接 python@3.7 工作
              【解决方案11】:

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

              【讨论】:

              • 嗨@Seyed,我有同样的问题,我的默认spyder以3.7打开,虽然我打开了我的conda python 3.6.9环境的工具->首选项,如何切换spyder,anaconda导航器没有显示 spyder 的启动?
              【解决方案12】:

              创建一个虚拟环境,安装然后切换到python 3.6.5

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

              当你想使用 tensorflow 时激活环境

              【讨论】:

                【解决方案13】:

                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。

                【讨论】:

                • 我的是 cd /Library/Frameworks/Python.framework/Versions
                【解决方案14】:

                如果你正在使用 Anaconda,那么

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

                可能会起作用。

                【讨论】:

                • 这有效并解决了我的问题。这不仅安装了旧版本的 Python,而且还降级了版本。
                • 任何其他不使用conda for Linux 的解决方案?
                • 我收到UnsatisfiableError:The following specifications were found to be in conflict: - python=3.5.0 - ssl_match_hostname -&gt; python[version='&gt;=2.7,&lt;2.8.0a0'] -&gt; readline=7 - ssl_match_hostname -&gt; python[version='&gt;=2.7,&lt;2.8.0a0'] -&gt; tk=8.6
                【解决方案15】:

                我在使用 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 notebook 或 jupyter lab,这有助于选择正确的虚拟环境

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

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

                virtual environment and jupyter notebooks

                希望对你有帮助

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2019-06-19
                  • 2019-07-27
                  • 1970-01-01
                  • 2019-11-14
                  • 1970-01-01
                  • 2021-03-07
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多