pyenvのインストールと簡単な使用(git、pyenv、pyenv-virtualenv)

pyenvのインストールと簡単な使用(git、pyenv、pyenv-virtualenv)

Python作業環境管理

Python 2とPython 3の間には大きな違いがあり、さまざまな理由により、Python 2とPython 3は長い間共存しています。実際の作業プロセスでは、Python 2とPython 3を同時に使用する可能性があるため、Python 2とPython 3を頻繁に切り替える必要があります。さらに、あなたがアーリーアダプターを好む人であれば、新しいバージョンのPythonがリリースされたときにすぐにPythonバージョンをダウンロードして、Pythonの機能を試す可能性があります。

Pythonの世界では、Pythonバージョンの管理に加えて、さまざまなソフトウェアパッケージを管理する必要もあります。ほとんどの場合、オープンソースライブラリのバージョンを使用できます。ただし、同じPythonバージョンに対して、異なるプロジェクトで異なるバージョンのソフトウェアパッケージを使用する必要がある場合があります。

このセクションでは、pyenvとvirtualenvの2つのツールを紹介します。前者はさまざまなPythonバージョンの管理に使用され、後者はさまざまな作業環境の管理に使用されます。これらの2つのツールを使用すると、Python関連のバージョンの問題は発生しなくなります。

1.問題のシナリオ

  1. Pythonインタープリターのバージョンは紛らわしく、2と3は大きく異なり、細分化されたバージョンも異なるため、選択と管理が困難です。
  2. 異なるLinuxディストリビューションには異なるPythonが付属しています。たとえば、ubuntu16には2.7と3.5のバージョンが付属しています。システムの多くのコンポーネントは独自のインタープリターに依存しています。削除または変更すると、システムに問題が発生する可能性があります。
  3. また、pipやipythonなどの必要なパッケージコンポーネントなど、さまざまなPythonインタープリターパッケージ管理も問題です。また、プロジェクト開発において、さまざまなパッケージ環境が互いに干渉しないようにする方法も問題です。

では、異なるインタープリターバージョンを管理しながら、異なるパッケージ環境を制御するための究極のソリューションはありますか?はい、それはpyenvです。

2. pyenvを使用してさまざまなPythonバージョンを管理する

異なるバージョンのPythonをインストールすることは簡単な作業ではありません。異なるバージョンのPythonを切り替えるのはより難しく、複数のバージョンを共存させることは非常に簡単です。したがって、pyenvというツールが必要です。pyenvはPythonバージョン管理ツールであり、グローバルPythonバージョンを切り替えることができ、単一のプロジェクトに対応するPythonバージョンを提供することもできます。pyenvを使用した後、サーバーに複数の異なるPythonバージョンをインストールしたり、異なるPython実装をインストールしたりできます。異なるPythonバージョン間の切り替えも非常に簡単です。次に、pyenvのインストールと使用について見てみましょう。

3. pyenvとは何ですか?何ができますか?

Pyenvは、Rubyコミュニティから分岐したシンプルで控えめなPython環境管理ツールです。グローバルインタープリターのバージョンを簡単に切り替えることができます。同時に、vitualenvプラグインと組み合わせて、対応するパッケージソースを簡単に管理できます。

ターミナルで「ls」などのコマンドを入力すると、シェルは現在の環境のPATH内の各ディレクトリからlsの実行可能ファイルがあるかどうかを確認し、見つかった場合はそれを実行します。それ以外の場合は「command no found」と報告します。 'エラー、同じ理由で、PATH変数が制御されている限り、Pythonのバージョンを切り替えることができます。Pyenvは、PATHヘッダーにシムパスを挿入することにより、Pythonのバージョンを制御します。

pyenvのインストールと簡単な使用(git、pyenv、pyenv-virtualenv)

pyenvと一般的なpipenvとvirtualenvの関係

Pipenvは、リクエストの作成者であるKenneth Reitzが作成したpython仮想環境管理ツールであり、pipとvirtualenvの機能を組み合わせたものです。これは、引き続きパッケージ環境の管理に重点を置いています。最初にPythonのバージョンを指定する環境を作成し、次にこの環境で作成するという考え方です。対応するパッケージをインストールし、優れたレビューをご覧ください。多くのダニエルが推奨されています。

Virtualenvは、より伝統的で成熟した仮想環境管理ツールであり、より多くの人々が使用されています。仮想環境を作成してから、対応するパッケージをインストールするという考えです。環境に入るには、アクティブ化スクリプトをアクティブ化してアクティブ化します。成熟していますが、個人的には使用しませんプロジェクトを展開するときも、環境問題が常にあります。

Pyenvの人気は比較的低いですが、非常に安定しています。私は3つの環境管理ツールをすべて使用しましたが、個人的には次の理由でpyenvを好みます:

  • 他の2つのツールと比較して、pyenvはPythonインタープリターのバージョン管理に重点を置いています。これは、パッケージ管理よりも大きなレベルです。pyenvを使用すると、指定したバージョンのPythonインタープリター、pypy、anacondaなどを簡単にダウンロードでき、いつでも自由に使用できます。シェル環境でのローカルおよびグローバル切り替えのためのPythonインタープリター
  • 開発中に仮想環境の特定のバージョンを制限する必要はありません。デプロイメント中にpyenvで特定のバージョンを指定するだけです
  • pyenvがインタープリターバージョンを切り替えると、pipとipython、および対応するパッケージ環境が一緒に切り替えられるため、ipython2.xとipython3.xの複数のインタープリターを実行してコードを検証する場合、非常に便利です。
  • pyenvは指定された仮想環境を作成することもできますが、特定のディレクトリを指定する必要がなく、自由度が高く、使用も簡単です。

4.使いやすい

# 查看当前版本
pyenv version

# 查看所有版本
pyenv versions

# 查看所有可安装的版本
pyenv install --list

# 安装指定版本
pyenv install 3.6.5
# 安装新版本后rehash一下
pyenv rehash

# 删除指定版本
pyenv uninstall 3.5.2

# 指定全局版本
pyenv global 3.6.5

# 指定多个全局版本, 3版本优先
pyenv global 3.6.5 2.7.14

# 实际上当你切换版本后, 相应的pip和包仓库都是会自动切换过去的

1つは、pyenvインストール

Linux環境

バージョン ホスト 環境
centos7.6 192.168.1.80 python3

1. gitをインストールします

[root@python ~]# yum install git

2.ターミナルを開く

この記事ではbashを使用しています

3. pyenvをインストールする

注:この記事のすべてのインストールは、公式ドキュメントに厳密に従っており、公式ドキュメントと完全に一致しています。\

gitアドレス:https : //github.com/pyenv/pyenv

端末で次のコマンドを実行します。安全で無毒です。安心して食べてください。

最初にプロジェクトのクローンを作成し、ホームディレクトリの下の隠しフォルダーに配置します:.pyenv

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

次に、環境変数を設定します

bashを使用する場合は、次のコマンドを順番に実行します。
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc
zshを使用する場合は、次のコマンドを順番に実行します。
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.zshrc

エコーコマンドの意味は次のとおりです。ファイルに引用符で囲まれたコンテンツを書き込みます。
上記の3つのエコーコマンドの最後の長いコマンドは、引用符で囲まれたコンテンツが〜/ .bashrcまたは〜/ .zshrcにあることを確認してください。底。
パス環境変数はpyenvの初期化中に操作されるため、予期しない動作が発生します。
ファイルの下部を表示するには、tailコマンドを使用できます。使用法:tail〜/ .bashrcまたはtail〜/ .zshrc、ファイルを編集してvimまたはvscodeを使用できます

最後に、pyenvを使用する前に、シェル環境を再初期化し、次のコマンドを実行します

exec $SHELL

このコマンドを実行しないことは完全に可能です。現在のターミナルウィンドウを閉じて再起動できます。

この時点で、pyenvのインストールが完了し、そのすべてのコマンドを使用できますが、急いでそれを使用しないで、pyenvのプラグインを一度にインストールすることをお勧めします。つまり、pyenv-virtualenvです。

4. pyenv-virtualenvをインストールします

virtualenv自体は、さまざまなプロジェクトの作業環境を分離する独立したプロジェクトです。たとえば、ユーザーlmxがプロジェクトAでFlask 0.8を使用すると同時に、プロジェクトBでFlask 0.9を使用したいとします。Flaskをグローバルにインストールすると、必然的にユーザーのニーズを満たすことができなくなります。現時点では、virtualenvを使用できます。

読者はpyenvとvirtualenvの違いに注意する必要があります。pyenvは、さまざまなPythonバージョンを管理するために使用されます。たとえば、システムは、作業時にはPython 2.7.13を使用し、学習時にはPython 3.6.0を使用します。Virtualenvは、プロジェクトの作業環境を分離するために使用されます。たとえば、プロジェクトAとプロジェクトBの両方がPython 2.7.13を使用します。ただし、プロジェクトAはFlaskバージョン0.8を使用し、プロジェクトBはFlaskバージョン0.9を使用する必要があります。2つのツールpyenvとvirtualenvを組み合わせる限り、Pythonのバージョンとサードパーティライブラリの任意の組み合わせを構築できます。これにより、柔軟性が高く、プロジェクト間の相互干渉が回避されます。

Virtualenv自体は独立したツールであり、ユーザーはpyenvを使用せずにvirtualenvを単独で使用できます。ただし、pyenvを使用する場合は、virtualenvソフトウェアでvirtualenv関数を使用する代わりに、pyenv-virtualenvプラグインをインストールする必要があります。

gitアドレス:https : //github.com/pyenv/pyenv-virtualenv

(1)インストールしたばかりのpyenvのpluginsフォルダーにプラグインを複製します

git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv

(2)次に環境変数を設定します

bashを使用する場合は、次のコマンドを実行します。
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
zshを使用する場合は、次のコマンドを実行します。
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc

(3)最後に、pyenvを使用する前に、シェル環境を再初期化し、次のコマンドを実行します。

exec $SHELL

このコマンドを実行しないことは完全に可能です。現在のターミナルウィンドウを閉じて再起動できます。

この時点でpyenvがインストールされています。次のコマンドを使用して、pyenvが正しくインストールされているかどうかを確認し、pyenvのヘルプ情報を取得できます。

[root@python ~]# pyenv --help
Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   commands    List all available pyenv commands
   exec        Run an executable with the selected Python version
   global      Set or show the global Python version(s)
   help        Display help for a command
   hooks       List hook scripts for a given pyenv command
   init        Configure the shell environment for pyenv
   install     Install a Python version using python-build
   local       Set or show the local application-specific Python version(s)
   prefix      Display prefix for a Python version
   rehash      Rehash pyenv shims (run this after installing executables)
   root        Display the root directory where versions and shims are kept
   shell       Set or show the shell-specific Python version
   shims       List existing pyenv shims
   uninstall   Uninstall a specific Python version
   version     Show the current Python version(s) and its origin
   --version   Display the version of pyenv
   version-file   Detect the file that sets the current pyenv version
   version-name   Show the current Python version
   version-origin   Explain how the current Python version is set
   versions    List all Python versions available to pyenv
   whence      List all Python versions that contain the given executable
   which       Display the full path to an executable

See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme

次に、pyenvを使用します

ここでは、pyenvとvirtualenvの毎日の使用のみを示しています。

1.インストールが正しいかどうかを確認します

pyenvのバージョンを確認する
[root@python ~]# pyenv version
(set by /root/.pyenv/version)
pyenvが管理しているPythonのバージョンを確認する
[root@python ~]#pyenv versions
* system (set by /root/.pyenv/version)

正常なバージョン情報が表示されればOK、コマンドが見つからないなどの表示はインストールに失敗したことを意味します。

次のように、pyenvのinstallコマンドを使用して、pyenvで現在サポートされているPythonのバージョンを確認できます。

[root@python ~]# pyenv install --list 
Available versions:
2.1.3
……省略部分信息
3.8.0
3.8-dev
3.8.1
3.9-dev
……省略部分信息
anaconda3-2018.12
anaconda3-2019.03
anaconda3-2019.07
anaconda3-2019.10
……省略部分信息
[root@python ~]#

2、pyenvスイッチのpythonバージョン

pyenvがインストールできるPythonバージョンのリストは非常に長いため、ここでは省略されています。読者は自分のコンピューターにpyenvをインストールしてから、pyenv install --listコマンドを実行して表示できます。ご覧のとおり、pyenvはさまざまなPythonバージョンをインストールできるだけでなく、さまざまなPython実装をインストールしたり、学習用のPythonバージョンをインストールしたりすることもできます。

現在のシステムに含まれているPythonのバージョンを表示します。

[root@python ~]# pyenv versions 
* system (set by /root/.pyenv/version)
pyenvを使用して、異なるバージョンのPythonをインストールします。
[root@python ~]#pyenv install -v 3.8.1  
[root@python ~]#pyenv install -v 2.7.13 
現在のシステムに含まれているPythonのバージョンをもう一度確認してください
[root@python ~]# pyenv versions
* system (set by /root/.pyenv/version)
  2.7.13
  3.8.1

バージョンを切り替える

#切换前为3.8.1
[root@python ~]# python
Python 3.8.1 (default, Apr 20 2020, 15:00:10) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

#切换为2.7.13
[root@python ~]# pyenv  global 2.7.13 
[root@python ~]# python
Python 2.7.13 (default, Apr 20 2020, 15:04:15) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

pyenvを使用した後は、Pythonのバージョンをすばやく切り替えることができます。Pythonのバージョンを切り替えた後、バージョンに依存する依存関係も一緒に切り替えられます。したがって、異なるバージョンがシステム内で互いに干渉するかどうかについて心配する必要はありません。たとえば、Pythonバージョンを切り替えると、対応するpipも切り替わるので、次に示すように、pipバージョンと使用するPythonバージョンの不一致を心配する必要はありません。

[root@python ~]# pyenv  global 3.8.1
[root@python ~]# pip --version
pip 19.2.3 from /root/.pyenv/versions/3.8.1/lib/python3.8/site-packages/pip (python 3.8)
Pythonバージョンを削除する場合は、uninstallコマンドを使用します。以下に示すように:
[root@python ~]# pyenv uninstall 2.7.10

第三に、pyenv-virtualenvの使用

pyenv-virtualenvを使用すると、同じPythonインタープリターに対して複数の異なる作業環境を作成できます。たとえば、2つの新しい作業環境を作成します。

[root@python ~]# pyenv virtualenv 3.8.1 first_project 
[root@python ~]# pyenv virtualenv 3.8.1 second_projec
virtualenvsサブコマンドを使用して、作業環境を表示できます
[root@python ~]# pyenv virtualenvs
  3.8.1/envs/first_project (created from /root/.pyenv/versions/3.8.1)
  3.8.1/envs/second_projec (created from /root/.pyenv/versions/3.8.1)
  first_project (created from /root/.pyenv/versions/3.8.1)
  second_projec (created from /root/.pyenv/versions/3.8.1)

作業環境を作成した後、アクティブ化および非アクティブ化サブコマンドを使用して、作業環境を開始または終了できます。作業環境に入ると、左側のプロンプトに現在の作業環境が表示され、環境が多すぎることによる操作エラーを回避できます。

(first_project) [root@python ~]# pip install flask==1.1.1 
Looking in indexes: https://pypi.doubanio.com/simple
Collecting flask==1.1.1
  Downloading https://pypi.doubanio.com/packages/9b/93/628509b8d5dc749656a9641f4caf13540e2cdec85276964ff8f43bbb1d3b/Flask-1.1.1-py2.py3-none-any.whl (94kB)
     |███▌                            | 10kB 28.0MB/s eta 0:00:
     |███████                         | 20kB 1.8MB/s eta 0:00:0
     |██████████▍                     | 30kB 2.7MB/s eta 0:00:0
     |█████████████▉                  | 40kB 1.8MB/s eta 0:00:0
     |█████████████████▍              | 51kB 1.3MB/s eta 0:00:0
     |████████████████████▉           | 61kB 1.5MB/s eta 0:00:0
     |████████████████████████▎       | 71kB 1.4MB/s eta 0:00:0
     |███████████████████████████▊    | 81kB 1.3MB/s eta 0:00:0
     |███████████████████████████████▏| 92kB 1.4MB/s eta 0:00:0
     |████████████████████████████████| 102kB 1.6MB/s 
Collecting itsdangerous>=0.24 (from flask==1.1.1)
(first_project) [root@python ~]# pyenv deactivate
##退出first_project环境
[root@python ~]# 

次に、異なる作業環境に異なるバージョンのFlaskをインストールする方法を見てみましょう

[root@python ~]# pyenv activate first_project 
##切换工作环境
(first_project) [root@python ~]# pip install flask==1.1.1 
##安装1.1.1的flask
(first_project) [root@python ~]# pyenv deactivate 
##退出目前工作环境
[root@python ~]#

[root@python ~]# pyenv activate second_projec
##切换工作环境
(second_project) [root@python ~]# pip install flask==0.10.1
##安装0.10.1的flask
(second_project) [root@python ~]# pyenv deactivate 
##退出目前工作环境
[root@python ~]#
2つの作業環境のソースディレクトリを確認する

pyenvのインストールと簡単な使用(git、pyenv、pyenv-virtualenv)

仮想環境を削除する場合は、以下を使用します。

(first_project) [root@python ~]# pyenv virtualenv-delete first_project 

pyenvとpython-virtualenvプラグインを使用すると、異なるバージョン間を自由に切り替えることができ、Pythonバージョンの管理と比較して、時間を節約するだけでなく、作業プロセスの相互干渉を回避できます。

3、pyenvを更新する

git cloneされているため、更新は非常に簡単です

cd ~/.pyenv` 或者 `cd $(pyenv root)`
 `git pull

4、pyenvをアンインストールする

pyenvはすべてを〜/ .pyenvの下に置くので、アンインストールは非常に便利です。

まず、環境変数を削除する必要があります

次に、実行する必要があります:

rm -rf ~/.pyenv` 或者 `rm -rf $(pyenv root)

おすすめ

転載: blog.51cto.com/14320361/2488888