brewを使用してmacOSに以前のバージョンのPython 3をインストールするにはどうすればよいですか?
コマンドでbrew install python
最新バージョンのPython 3(現在はv3.7.0)を入手しましたが、最新バージョンのPython 3.6(現在は3.6.5)が必要です。
pyenv
別のpythonインストールの処理を支援できる別のパッケージについて読みましたが、このソリューションは私には適していません。
brewを使用してmacOSに以前のバージョンのPython 3をインストールするにはどうすればよいですか?
コマンドでbrew install python
最新バージョンのPython 3(現在はv3.7.0)を入手しましたが、最新バージョンのPython 3.6(現在は3.6.5)が必要です。
pyenv
別のpythonインストールの処理を支援できる別のパッケージについて読みましたが、このソリューションは私には適していません。
回答:
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
そこ自作でのPythonをインストールするための2つの式は、次のとおりpython@2
とpython
。
1つ目はPython 2用、2つ目はPython 3用です。
注:python3
Pythonバージョン3をインストールするための式の名前として言及されている古い回答は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の履歴を見ればわかります。
https://github.com/Homebrew/homebrew-core/commits/master/Formula/python.rb
上記のリンクには、Pythonバージョン3.6.5以上の式はありません。その(公式)リポジトリのメンテナがPython 3.7をリリースした後、彼らはPython 3.7のレシピの更新のみを送信します。
上記で説明したように、homebrewではPython 2(python @ 2)とPython 3(python)しかありません。Python3.6の明示的な式はありません。
これらのマイナーな更新はほとんどの場合、ほとんどのユーザーにとって重要ではありませんが、誰かが3.6の明示的な公式を行ったかどうかを検索します。
Error: python 3.7.0 is already installed To install 3.6.5_1, first run
「短い答え」を使用すると、「blink unlink python」が表示されます。
更新として、行うとき
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
私がしたことは、最初に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
。これで、仮想環境を作成するためのすべてのpythonがシステムに含まれました。
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~ $
python -V && python3.7 -V && python3 -V && python3.6 -V
Python 2.7.15 Python 3.7.3 Python 3.7.3 zsh: command not found: python3.6
python3 -V
2度そのことをしたので、3.7.3
2度失って行方不明になっています3.6
python3.6
下に隠れてい/usr/local/Cellar/python/3.6.5_1/bin
ます。リンクを作成すると、あなたの言うとおりに機能します。このpython自己管理システムは、ブラウン運動によってコーディングする100万人のプログラマーのルーブゴールドバーグフラクタルのようです。
上記の答えをすべて試し、Python 3.4.4をインストールしました。Pythonのインストールは機能しましたが、PIPはインストールされず、機能させるために何もできませんでした。Mac OSX Mojaveを使用していたため、zlib、opensslで問題が発生しました。
してはいけないこと:
解決:
ps:システム上の他のバージョンのPythonをアンインストールする必要はありません。
編集:
MacOSX、Windows、Linuxなどで動作するはるかに優れたソリューションを見つけました。
conda init
conda create -n [NameOfYour VirtualEnvironment] python=3.4.4
conda info --envs
conda activate [The name of your virtual environment that was shown with the command at step 5]
私はすべてを試しましたが、うまくいくことができませんでした。最後に私は使用しましたがpyenv
、それは魅力のように直接機能しました。
たのでhomebrew
インストールし、ジュストの操作を行います。
brew install pyenv
pyenv install 3.6.5
virtualenvを管理するには:
brew install pyenv-virtualenv
pyenv virtualenv 3.6.5 env_name
詳細については、pyenvおよびpyenv-virtualenvを参照してください。
私はpyenvおよびpyenv-virtualenv direcltyをインストールするために自作よりも簡単にpyenv-installerを使用することを発見しました:
curl https://pyenv.run | bash
Pythonバージョンをグローバルに管理するには:
pyenv global 3.6.5
または特定のディレクトリのローカル:
pyenv local 3.6.5
virtualenv
アプローチによってそれを回避します。
pyenv
venvを使用する必要なくPythonバージョンを管理できます
誰かが以下のようなピップ問題に直面した場合
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
これをで解決するには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_owner / tap_name)に抽出することもできます。
brew extract python tap_owner/tap_name --version=3.6.5
私にとって最も簡単な方法は、Anacondaをインストールすることでした:https : //docs.anaconda.com/anaconda/install/
そこで、Pythonバージョンが異なる環境を必要なだけ作成し、マウスクリックでそれらを切り替えることができます。それは簡単なことではありません。
異なるPythonバージョンをインストールするには、以下の手順に従ってください https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-python.html
Pythonバージョンが異なる新しい開発環境が2分以内に完了しました。将来的には、簡単に切り替えることができます。