Brewを使ってmacOSに以前のバージョンのPython 3をインストールするにはどうすればいいですか?
brew install python
コマンドで、私は最新版のPython 3(現在はv3.7.0)を手に入れましたが、最後のバージョンのPython 3.6(現在は3.6.5)が欲しいです。
私は別のpythonインストールを処理するのを助けることができる別のパッケージpyenv
について読んだことがありますが、この解決策は私には適していません。
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@2
とpython
の2つです。
1つ目はPython 2用、2つ目はPython 3用です。
注: Pythonのバージョン3をインストールするための公式名としてpython3
が記載されているWeb上で古い回答を見つけることができます。今は単なる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のIDを見つけることができます。
https://github.com/Homebrew/homebrew-core/commits/master/Formula/python.rb
上記のリンクでは、3.6.5以上のバージョンのPythonの公式は見つかりません。その(公式の)レポジトリのメンテナがPython 3.7をリリースした後、彼らはPython 3.7のレシピにアップデートを送るだけです。
上で説明したように、自作では、Python 2(python @ 2)とPython 3(python)しかありません。 Python 3.6の明示的な公式はありません 。
これらのマイナーアップデートはほとんどの場合とほとんどのユーザーにとってほとんど無関係ですが、誰かが3.6の明示的な公式を作成した場合は検索します。
更新として、するとき
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
これを回避するには、brew installに--ignore-dependencies
引数を追加します。
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
私が最初にやったのは私がpython 3.7をインストールしたことです
brew install python3
brew unlink python
それから私は上記のリンクを使用してpython 3.6.5をインストールしました
brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb --ignore-dependencies
その後、私はbrew link --overwrite python
を実行しました。これで、仮想環境を作成するためのシステム内にすべてのpythonsがあります。
mian@tdowrick2~ $ python --version
Python 2.7.10
mian@tdowrick2~ $ python3.7 --version
Python 3.7.1
mian@tdowrick2~ $ python3.6 --version
Python 3.6.5
Python 3.7仮想環境を作成します。
mian@tdowrick2~ $ virtualenv -p python3.7 env
Already using interpreter /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.7'
New python executable in /Users/mian/env/bin/python3.7
Also creating executable in /Users/mian/env/bin/python
Installing setuptools, pip, wheel...
done.
mian@tdowrick2~ $ source env/bin/activate
(env) mian@tdowrick2~ $ python --version
Python 3.7.1
(env) mian@tdowrick2~ $ deactivate
Python 3.6仮想環境を作成する
mian@tdowrick2~ $ virtualenv -p python3.6 env
Running virtualenv with interpreter /usr/local/bin/python3.6
Using base prefix '/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6'
New python executable in /Users/mian/env/bin/python3.6
Not overwriting existing python script /Users/mian/env/bin/python (you must use /Users/mian/env/bin/python3.6)
Installing setuptools, pip, wheel...
done.
mian@tdowrick2~ $ source env/bin/activate
(env) mian@tdowrick2~ $ python --version
Python 3.6.5
(env) mian@tdowrick2~ $
これをhomebrew
で解決するには、homebrew-core
を一時的に更新し、それを適切な位置に保持するようにHOMEBREW_NO_AUTO_UPDATE
変数を設定します。
cd `brew --repo homebrew/core`
git checkout f2a764ef944b1080be64bd88dca9a1d80130c558
export HOMEBREW_NO_AUTO_UPDATE=1
brew install python
セキュリティパッチを見逃す可能性があるので、恒久的にhomebrew-coreをバックデートすることはお勧めしませんが、テスト目的には役立ちます。
brew extract
コマンドを使用して、古いバージョンの自作式を自分のtap(tap_owner/tap_name)に抽出することもできます。
brew extract python tap_owner/tap_name --version=3.6.5
私は上のすべての答えを試してPython 3.4.4をインストールしました。 pythonのインストールはうまくいきましたが、PIPはインストールされず、私はそれをうまく動かすことができませんでした。私はMac OSX Mojaveを使用していましたが、それがzlib opensslでいくつかの問題を引き起こします。
しないこと:
解決策:
p.s:システム上の他のバージョンのPythonをアンインストールする必要はありません。