Linuxの同じマシンに複数のバージョンのPythonをインストールして実行する方法について、Python Webサイトのどこかに公式ドキュメントがありますか?
何億ものブログ投稿と回答を見つけることができますが、これを行うための「標準的な」公式の方法があるかどうか知りたいですか?
それとも、これはすべてOSに依存していますか?
Linuxの同じマシンに複数のバージョンのPythonをインストールして実行する方法について、Python Webサイトのどこかに公式ドキュメントがありますか?
何億ものブログ投稿と回答を見つけることができますが、これを行うための「標準的な」公式の方法があるかどうか知りたいですか?
それとも、これはすべてOSに依存していますか?
回答:
完全に独立していると思います。それらをインストールするだけで、コマンドeg/usr/bin/python2.5とができ/usr/bin/python2.6ます。/usr/bin/pythonデフォルトとして使用するものにリンクします。
とにかく、すべてのライブラリは別々のフォルダ(バージョンにちなんで名付けられた)にあります。
バージョンを手動でコンパイルする場合、これはPythonソースコードのreadmeファイルからのものです。
複数のバージョンをインストールする
UnixおよびMacシステムで、同じインストールプレフィックス(configureスクリプトの--prefix引数)を使用して複数のバージョンのPythonをインストールする場合は、プライマリpython実行可能ファイルが異なるバージョンのインストールによって上書きされないように注意する必要があります。「makealtinstall」を使用してインストールされたすべてのファイルとディレクトリには、メジャーバージョンとマイナーバージョンが含まれているため、並べて使用できます。「makeinstall」は、$ {prefix} /bin/pythonX.Yを参照する$ {prefix} / bin / python3も作成します。同じプレフィックスを使用して複数のバージョンをインストールする場合は、どのバージョン(存在する場合)が「プライマリ」バージョンであるかを決定する必要があります。「makeinstall」を使用してそのバージョンをインストールします。「makealtinstall」を使用して他のすべてのバージョンをインストールします。
たとえば、2.6をプライマリバージョンとしてPython 2.5、2.6、および3.0をインストールする場合は、2.6ビルドディレクトリで「makeinstall」を実行し、その他のディレクトリで「makealtinstall」を実行します。
Windowsでは、「C:\ python26」と「C:\ python31」という別々のフォルダーにインストールされますが、実行可能ファイルの名前は同じ「python.exe」です。
それぞれ「python26」と「python31」のラッパーとして機能する「python.bat」と「python3.bat」を含む別の「C:\ python」フォルダーを作成し、「C:\ python」をに追加しました。 PATH環境変数に。
これにより、入力pythonまたはpython3、.bat Pythonラッパー、して、ラッパーを開始。
Linuxでは、この#!トリックを使用して、スクリプトで使用するバージョンを指定できます。
py -3.4またはpy -2.7を実行するだけで、プログラムpy(の下C:\Windows)がそのPythonインタープリターを選択します(インストールされていると仮定します)。
asdf最近では、asdfを使用してさまざまなバージョンのPythonインタープリターを並べてインストールすることをお勧めします。
注1:asdfPythonだけでなく、すべての主要言語で機能します。
注2:pipenvやpoetryasdfなどの一般的なパッケージマネージャーと組み合わせて正常に動作します。
あなたが持っている場合は航空自衛隊がインストールあなたが簡単/ダウンロード新しいPythonのインタプリタをインストールすることができます。
# Install Python plugin for asdf:
asdf plugin-add python
# List all available Python interpreters:
asdf list-all python
# Install the Python interpreters that you need:
asdf install python 3.7.4
asdf install python 3.6.9
# etc...
# If you want to define the global version:
asdf global python 3.7.4
# If you want to define the local (project) version:
# (this creates a file .tool-versions in the current directory.)
asdf local python 3.7.4
Ubuntu / Mintに複数のバージョンのPython(メインバージョンの隣)をインストールする必要がある場合:他のUnixでも同様に機能するはずです。)
1)ソースコンパイルに必要なパッケージをインストールする
$ sudo apt-get install build-essential checkinstall
$ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
2)目的のPythonバージョンをダウンロードして抽出します
Linux用のPythonソースをtarballとしてダウンロードし、に移動します/usr/srcます。
ダウンロードしたパッケージを所定の場所に解凍します。(「x」をダウンロードしたバージョンに置き換えます)
$ sudo tar xzf Python-x.x.x.tgz
3)Pythonソースをコンパイルしてインストールする
$ cd Python-x.x.x
$ sudo ./configure
$ sudo make altinstall
新しいPythonビンはにあり/usr/local/binます。新しいバージョンをテストできます。
$ pythonX.X -V
Python x.x.x
$ which pythonX.X
/usr/local/bin/pythonX.X
# Pip is now available for this version as well:
$ pipX.X -V
pip X.X.X from /usr/local/lib/pythonX.X/site-packages (python X.X)
異なるPythonバージョンをインストールする方法は、確かにOSに依存します。
ただし、Linuxを使用している場合は、pythonbrewやpythonzなどのツールを使用して、さまざまなバージョンを簡単に管理および切り替えることができます。
$user1デフォルト以外のPythonバージョンを提供することは可能ですか?
pyenvはそのために機能します。上記のリンクのreadmeから:> [Lets]ユーザーごとにグローバルPythonバージョンを変更します。
以下のコマンドはMac用ですが、Linuxと非常によく似ています(以下のリンクを参照)
#Install pyenv
brew update
brew install pyenv
MacのプライマリバージョンとしてPython3.6があるとします。
python --version
出力:
Python <your current version>
pyenv install -l
3.7.3を取りましょう:
pyenv install 3.7.3
必ずターミナルでこれを実行してください(〜/ .bashrcまたは〜/ .zshrcに追加してください):
export PATH="/Users/username/.pyenv:$PATH"
eval "$(pyenv init -)"
それでは、開いているターミナル/シェルでのみ実行してみましょう。
pyenv shell 3.7.3
python --version
出力:
Python 3.7.3
そして、それほど重要ではありませんが、開いたシェル/ iTermで設定を解除します。
pyenv shell --unset
Pythonの複数のバージョンをインストールして管理できるパッケージマネージャーの場合、次のような選択肢があります。
これらのパッケージマネージャーの利点は、ソースからpythonをインストールするよりも、セットアップして複数のバージョンのpythonをインストールする方が簡単な場合があることです。また、shimを使用して使用可能なPythonバージョンを簡単に変更したり、ディレクトリごとにPythonバージョンを設定したりするためのコマンドも提供します。
この欠点は、つまり、デフォルトでは、彼らは(自分のホームディレクトリ内)ユーザレベルでインストールされ、ユーザー・レベルの構成を少し必要としている-あなたはあなたの編集する必要があります~/.profileし、~/.bashrcまたは類似したファイル。これは、それらを使用して、すべてのユーザーに対して複数のPythonバージョンをグローバルにインストールすることは容易ではないことを意味します。これを行うために、OSの既存のPythonバージョンと一緒にソースからインストールできます。
このメソッドにはroot権限が必要です。
追加の考慮事項とオプションについては、ソースからビルドするための公式のPythonドキュメントを参照してください。
/usr/localは、システム管理者が共有(システム全体)ソフトウェアをインストールするための指定された場所であるため、そのサブディレクトリは、Pythonソースをダウンロードしてインストールするのに適した場所です。LinuxFoundationのファイル階層標準のセクション4.9を参照してください。
ビルドの依存関係をインストールします。Debianベースのシステムでは、以下を使用します。
apt update
apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev libbz2-dev
インストールするPythonのバージョンを選択します。Pythonソースリリースを参照してくださいリストページを参照してください。
でファイルをダウンロードして解凍し/usr/local/src、X.X.X以下をPythonバージョン(つまり3.8.2)に置き換えます。
cd /usr/local/src
wget https://www.python.org/ftp/python/X.X.X/Python-X.X.X.tgz
tar vzxf Python-X.X.X.tgz
ビルドしてインストールする前に、CFLAGS必要なCコンパイラフラグを使用して環境変数を設定します(GNUのmakeドキュメントを参照)。これは通常、一般的な使用には必要ありませんが、たとえば、このPythonバージョンでuWSGIプラグインを作成する場合は-fPIC、次のようにフラグを設定することをお勧めします。
export CFLAGS='-fPIC'
作業ディレクトリを解凍したPythonソースディレクトリに変更し、ビルドを構成します。プロファイルガイド付き最適化のコマンドの--enable-optimizationsオプションを使用することをお勧めします。使用する(適切なサブディレクトリにインストールするには、など、)。./configure--prefix=/usr/local/usr/local/bin/usr/local/lib
cd Python-X.X.X
./configure --enable-optimizations --prefix=/usr/local
複数のバージョンをインストールするときにファイルが上書きされないように、でプロジェクトをビルドしmakeてインストールしmake altinstallます。Pythonビルドドキュメントのこのページの警告を参照してください。
make -j 4
make altinstall
そうすれば、新しいpythonとpipのバージョンをpythonX.Xand pipX.X(つまりpython3.8and pip3.8)で実行できるはずです。新規インストールのマイナーバージョンがOSのバージョンと同じである場合(たとえば、python3.8.4をインストールしていて、OSがpython3.8.2を使用している場合)、パス全体(/usr/local/bin/pythonX.X)を指定するか、を設定する必要があることに注意してください。このバージョンを使用するためのエイリアス。
これは、使用するパッケージ配布システムに最も強く依存します。たとえば、MacPortsを使用すると、複数のPythonパッケージをインストールし、pyselectユーティリティを使用してデフォルトを簡単に切り替えることができます。いつでも、フルパスを指定することでさまざまなPythonインタープリターを呼び出すことができ、それらのフルパスを指定することで、すべてのPythonライブラリとヘッダーに対してリンクすることができます。
したがって、基本的に、バージョンをインストールする方法が何であれ、インストールを別々に保つ限り、それらを別々に実行することができます。
私はanacondaナビゲーターでこれを行いました。anaconda navigatorをインストールし、Pythonバージョンが異なる2つの異なる開発環境を作成しました
環境を切り替えたり、アクティブ化および非アクティブ化することで、異なるPythonバージョンを切り替えます。
最初にanacondanavigatorをインストールしてから、環境を作成します。
環境の管理方法については、こちらのヘルプをご覧ください
https://docs.anaconda.com/anaconda/navigator/tutorials/manage-environments/
これがコンダでそれをするためのビデオです