GNU/Linux >> Linux の 問題 >  >> Linux

異なる python バージョンの apt-get install

ubuntu 10.04 には python2.7 パッケージがありません。 2.7 を自分でビルドする必要があります。 12.04 が出たときに python2.7 パッケージをリリースする ubuntu に関する記事を読みましたが、リポジトリの場所がわかりません.

http://eli.thegreenplace.net/2011/10/10/installing-python-2-7-on-ubuntu/

または:

sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
sudo apt-get install python2.7

https://askubuntu.com/questions/101591/install-python-2-7-2-on-ubuntu-10-04-64-bit

この質問にはオンラインで多くの回答があります。


pyenv

https://github.com/pyenv/pyenv

Pyenv を使用すると、Node.js NVM や Ruby RVM と同様に、1 人のユーザーに対して sudo を使用せずに複数の Python バージョンを管理できます。

Pyenv をインストールします:

curl https://pyenv.run | bash

次に、 .bashrc に追加します :

export PATH="${HOME}/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

インストールする Python バージョンを検索:

pyenv install --list

必要な Python バージョンをインストールします:

# Increase the chances that the build will have all dependencies.
# https://github.com/pyenv/pyenv/wiki/Common-build-problems
sudo apt build-dep python3
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
  libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
  xz-utils tk-dev libffi-dev liblzma-dev python-openssl git

# Build and install a Python version from source.
pyenv install 3.8.0

利用可能な Python バージョンのリスト:

pyenv versions

* system (set by /home/cirsan01/.pyenv/version)
  3.8.0

別の Python バージョンを選択してください:

pyenv global 3.8.0
python --version
python3 --version

両方の出力:

Python 3.8.0

これで、パッケージのインストールと通常の使用に進むことができます:

pip install cowsay
python -c 'import cowsay; cowsay.tux("Python is fun")'
cowsay 'hello'

以下を使用して、すべてがクリーンな環境にローカルにインストールされていることを確認できます。

python -c 'import cowsay; print(cowsay.__file__)'

与えます:

/home/ciro/.pyenv/versions/3.8.0/lib/python3.8/site-packages/cowsay/__init__.py

そして:

which cowsay

与えます:

/home/ciro/.pyenv/shims/cowsay

そして:

which python

与えます:

/home/ciro/.pyenv/shims/python

プロジェクトごとの使用量

前のセクションでは、グローバル セットアップで pyenv を使用する方法を見てきました。

ただし、通常必要なのは、プロジェクトごとに特定の python とパッケージのバージョンを設定することです。これがやり方です。

最初に、以前と同様に目的の Python バージョンをインストールします。

次に、プロジェクト ディレクトリ内から、目的の Python バージョンを次のように設定します。

pyenv local 3.8.0

ファイル .python-version を作成します バージョン文字列を含みます。

それでは、私たちのプロジェクトのためだけにパッケージをローカルにインストールしましょう:TODO:一見良い方法はありません:Pyenv は virtualenv ディレクトリを選択します

これで、誰かがあなたのプロジェクトを使用したい場合、彼らは次のことを行います:

pyenv local

これにより、Python のバージョンが正しいバージョンに設定されます。

関連スレッド:

  • https://askubuntu.com/questions/682869/how-do-i-install-a-different-python-version-using-apt-get
  • https://unix.stackexchange.com/questions/9711/what-is-the-proper-way-to-manage-multiple-python-versions
  • 異なる Python バージョンの apt-get インストール

Ubuntu 18.04、pyenv 1.2.15 でテスト済み。


Python には、Linux ディストリビューション (Ubuntu を含む) によるパッケージ管理機能と並行して、独自のパッケージ管理機能があります。リポジトリは Pypi - Python Package Index で、パッケージは pip でインストールされます または、Python の setuptools パッケージの一部である easy_install スクリプト。

経験則として、pip/setuptools を介してインストールされたパッケージと、ディストリビューションで利用可能なパッケージ (apt-get、yum、urpmi などを介して) の両方を使用しないでください。競合する可能性があるためです。

したがって、エラーが発生しにくい方法の 1 つは、システムに個別の Python をインストールすることです。システム スクリプトなどのためにシステムに付属の Python をそのままにしておきます。この Python では、パッケージ マネージャーによってインストールされたパッケージを利用します。それだけ。そして、「virtualenv」で実行するために、他のバージョンの Python (または同じもの) をインストールします。これらの他のインストールでは、pip/setuptools のみでインストールします。

(そして、大胆に生きて virtualenvs を使わないことを選択したとしても、同じプレフィックス (/usr 、さらには /usr/local ) システムの Python は、混乱を招くエラーや競合の原因となります)。

Debian - および Ubuntu - システムは、/usr で公式の Python を並行して実行する方法と、Python パッケージを両方の Python バージョンに一度にインストールする apt-get を使用する方法を考案したことに注意してください。これはほとんどの場合機能しますが、Python のデフォルトのディレクトリ階層が乱れ、一部のアプリケーションではこの方法で Python を使用できません。 (Debian や Ubuntu でモジュール ファイル自体を見つけるのも面倒です)。そのため、システムに apt-get で利用できる Python のバージョンが複数ある場合でも、上記の方法が推奨事項として適用されます。

つまり、必要なバージョンの Python をコンパイルしたら、次のようにします。

<オール>
  • システムのパッケージ マネージャーを使用して、「python-setuptools」と「python-virtualenv」をインストールします (これらが実際のパッケージ名かどうかは不明です)。
  • virtualenv を使用 別のバージョンの Python を使用する環境を作成する
  • virtualenv を有効にし、pip を使用して Python パッケージをインストールします
  • Virtualenv には役立つ「--help」スイッチがありますが、基本的には:

    $ virtualenv -p <path-to-python-interpreter>  <environment-dir>
    $ source <environment-dir>/bin/activate
    

    これで、Python を使用するすべてのものは、環境変数が設定されているため、virtualenv でインタープリターを「見る」ことができます。


    Linux
    1. Condaを使用してさまざまなPythonバージョンの仮想環境を作成する

    2. NGNIXの異なるドメインに対して複数のバージョンのPHPを実行する

    3. UbuntuにPipをインストールする方法–Python用パッケージマネージャー

    1. LinuxMint20にPythonをインストールする方法

    2. Ubuntu20.04にPythonバージョンをインストールして切り替える方法

    3. 不足している python bz2 モジュール

    1. LinuxにPythonをインストールする方法

    2. Raspberry Pi で Python Selenium を使用するために PhantomJS をインストールするにはどうすればよいですか?

    3. Ubuntu 20.04 に複数の Python バージョンをインストールするための推奨される方法