如何使用自制软件在macOS中安装Python 3的早期版本?

时间:2018-07-01 16:20:28

标签: python macos homebrew

如何使用brew在macOS中安装Python 3的早期版本?

使用命令unordered_map,我获得了最新版本的Python 3(当前为v3.7.0),但是我想要的是最新版本的Python 3.6(当前为3.6.5)。

我已阅读了有关另一个软件包brew install python的信息,该软件包可以协助处理不同的python安装,但是此解决方案不适合我。

8 个答案:

答案 0 :(得分:195)

简短回答

要干净安装Python 3.6.5,请使用:

brew unlink python # ONLY if you have installed (with brew) another version of python 3
brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb

如果您希望恢复以前安装的版本,则:

brew info python           # To see what you have previously installed
brew switch python 3.x.x_x # Ex. 3.6.5_1

长答案

有两个使用Homebrew安装Python的公式:python@2python
第一个用于Python 2,第二个用于Python 3。

注意:您可以在网络上找到过时的答案,其中提到python3作为安装Python版本3的公式名称。现在只是python! >

默认情况下,使用这些公式,您可以安装相应主版本Python的最新版本。因此,您不能直接安装3.6的次要版本。

解决方案

使用brew,您可以使用公式的地址安装软件包,例如在git存储库中。

brew install https://the/address/to/the/formula/FORMULA_NAME.rb

或者专门针对Python 3

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/COMMIT_IDENTIFIER/Formula/python.rb

您必须指定的地址是所需版本的公式最后一次提交(python.rb)的地址。 您可以通过查看homebrew-core / Formula / python.rb

的历史记录来找到commint标识符

https://github.com/Homebrew/homebrew-core/commits/master/Formula/python.rb

Python> 3.6.5

在上面的链接中,您不会找到3.6.5以上版本的Python的公式。 该(官方)存储库的维护者发布Python 3.7之后,他们仅提交对Python 3.7配方的更新。

如上所述,对于自制软件,您只有Python 2(python @ 2)和Python 3(python), Python 3.6没有明确的公式

尽管那些较小的更新在大多数情况下以及对于大多数用户而言都是无关紧要的,但我将搜索是否有人对3.6做过明确的公式。

答案 1 :(得分:29)

作为更新,当做

brew unlink python # If you have installed (with brew) another version of python
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb

您可能会遇到

Error: python contains a recursive dependency on itself:
  python depends on sphinx-doc
  sphinx-doc depends on python

要绕过它,请将--ignore-dependencies参数添加到brew install。

brew unlink python # If you have installed (with brew) another version of python
brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb

答案 2 :(得分:14)

我已经尝试了所有方法,但无法使其正常工作。最终,我使用了pyenv,它像魅力一样直接工作。

因此,安装homebrew即可:

brew install pyenv
pyenv install 3.6.5

管理virtualenvs:

brew install pyenv-virtualenv
pyenv virtualenv 3.6.5 env_name

有关更多信息,请参见pyenvpyenv-virtualenv

编辑(2019/03/19)

我发现使用pyenv-installer比自制软件更容易安装pyenv和pyenv-virtualenv dirclty:

curl https://pyenv.run | bash

要全局管理python版本:

pyenv global 3.6.5

或在给定目录中的本地

pyenv local 3.6.5

答案 3 :(得分:11)

我要做的是首先安装了python 3.7

import {A} from './a.ts'

然后我使用上面的链接安装了python 3.6.5

b.ts

此后,我运行了import {b} from './b.ts'。现在,我在系统中拥有所有的python来创建虚拟环境。

a.ts

创建Python 3.7虚拟环境。

File f = FileUtils.fileFromAsset(this, "filename.pdf");

PdfReader pdfReader = new PdfReader(f.getPath());

创建Python 3.6虚拟环境

task watch {
    inputs.files 'src/main'
    doLast {
        compileKotlin2Js.execute()
    }
}

答案 4 :(得分:7)

万一任何人遇到如下所示的点子问题

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

根本原因是openssl 1.1不再支持python 3.6。因此,您需要安装旧版本的openssl 1.0

这是解决方法:

brew uninstall --ignore-dependencies openssl
brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

答案 5 :(得分:0)

要使用homebrew解决此问题,您可以暂时回溯homebrew-core并设置HOMEBREW_NO_AUTO_UPDATE变量以将其保留在适当的位置:

cd `brew --repo homebrew/core`
git checkout f2a764ef944b1080be64bd88dca9a1d80130c558
export HOMEBREW_NO_AUTO_UPDATE=1
brew install python

我不建议永久回溯自制内核的日期,因为您会错过安全补丁,但这对测试很有用。

您还可以使用brew extract命令将旧版本的自制程序公式提取到自己的水龙头(tap_owner / tap_name)中:

brew extract python tap_owner/tap_name --version=3.6.5

答案 6 :(得分:0)

我尝试了以上所有答案来安装Python 3.4.4。 python的安装有效,但是PIP无法安装,我无能为力。我使用的是Mac OSX Mojave,这会导致zlib,openssl出现一些问题。

不执行的操作

  • 尝试避免使用公式 Python Python3 给出的先前版本的Homebrew。
  • 请勿尝试编译 Python

解决方案:

  1. 下载 macOS 64位安装程序 macOS 64位/ 32位安装程序https://www.python.org/downloads/release/python-365/
  2. 在上一步中,它将下载 Python 3.6.5 ,例如,如果您要下载 Python 3.4.4 ,请在上方的网址中替换python-365 通过 python-344
  3. 下载并单击您下载的文件,GUI安装程序将打开
  4. 如果您下载了 python-365 ,则在安装后要启动此版本的python,您将在终端机中输入 python365 ,对于pip来说,它是 pip365

p.s:您不必在系统上卸载其他版本的Python。

答案 7 :(得分:0)

对我来说,最简单的方法是安装Anaconda:https://docs.anaconda.com/anaconda/install/

我可以在其中创建任意数量的具有不同Python版本的环境,然后单击鼠标即可在它们之间切换。再简单不过了。

要安装其他Python版本,请遵循以下说明https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-python.html

在2分钟内完成了具有不同Python版本的新开发环境。将来我可以轻松地来回切换。