皆さんが日々の開発作業でこのような状況に遭遇したことがあるかどうかはわかりません:
まず最初の質問: Python のバージョンの問題ですが、Python 2.x では大きな違いがあります。 Python 3.x など、バージョンが多数あり、管理が容易ではありません。
2 番目の質問: リクエストのバージョンはプロジェクト B とプロジェクト C に影響を与えない可能性があります。しかし、他のプロジェクトで同じパッケージの異なるバージョンを使用すると、大きな影響を与える可能性があります。次に、この時点でバージョンを区別する必要があるため、同じ Python バージョンで 2 つのバージョンのパッケージを使用する必要があります。明らかに、このシナリオではパッケージ管理が問題になります。異なるパッケージ環境が相互に干渉しないようにすることが非常に重要です。それは日々のプロジェクト開発において必要であり、基本的なニーズです。その場合、最良の方法は 2 つの仮想環境です。
それでは、異なるパッケージ バージョンを制御する機能を提供しながら、異なるバージョンのインタープリターを管理できる最終的なソリューションはあるのでしょうか? もちろん、それは pyenv です。
pyenv は Ruby コミュニティからフォークされた Python 環境管理ツールで、グローバル Python インタプリタのバージョンを簡単に切り替えることができ、virtualenv と組み合わせることができます管理に便利なバッグです。 pyenv をインストールすると、次のように環境変数が $PATH に追加されます:
❯ echo $PATH /Users/allenjol/.pyenv/plugins/pyenv-virtualenv/shims:/Users/allenjol/.pyenv/shims:/usr/local/bin:/usr/local/sbin
つまり、pyenv は実際に PATH 環境変数を制御して、Python のバージョンを切り替えます。 PATH パスの先頭に shims パスを挿入することで、Python にバージョン管理を実装します。
前述したように、pyenv は Python のバージョンを制御し、virtualenv は比較的成熟した Python 仮想環境管理ツールであり、pipenv はrequrests package Kenneth Reitz によって Python 用のパッケージ管理ツールとして作成されたツールで、仮想環境を生成することもできます。この記事では今のところこのツールについては説明しませんが、後の記事で紹介します。
Pyenv は Python インタープリターのバージョンの管理に重点を置いており、Python のバージョンを自由に切り替えることができ、特定の仮想環境ディレクトリを指定する必要はありません。
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
brew update brew install pyenv
ネットワークの関係で MacOS にうまくインストールできない場合理由 brew を使用する解決策は 2 つあります。
# bash下设置环境变量 echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc source ~/.bashrc # zsh下设置环境变量(我是iterm2+zsh) echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc echo 'eval "$(pyenv init -)"' >> ~/.zshrc source ~/.zshrc
pyenv --version
# 查看当前版本 pyenv version # 查看所有版本 pyenv versions # 查看有哪些版本可供安装 pyenv install --list # 安装python 3.10.4版本 pyenv install 3.10.4 # 安装一个版本后rehash一下,让pyenv知道管理的Python版本信息 pyenv rehash # 卸载 pyenv uninstall 3.10.4 # 查看所有版本 ❯ pyenv versions system * 3.10.4 (set by /Users/allenjol/.pyenv/version) # 切换全局的Python版本,表示切换为系统的Python版本 pyenv global system # 表示切换为pyenv的3.10.4版本 pyenv global 3.10.4
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv # 配置环境变量 echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile source ~/.bash_profile
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv # MacOS的zsh echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc exec "$SHELL" # 方法二 brew install pyenv-virtualenv echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc exec "$SHELL"
# 创建venv环境 pyenv virtualenv venv3.10.4 # 激活venv pyenv activate venv3.10.4 pyenv version # 退出venv环境 pyenv deactivate venv3.10.4 # 删除虚拟环境 pyenv uninstall venv3.10.4
切り替えるときPython へ 仮想環境を使用する場合、仮想環境内の pip とパッケージはターゲット環境に切り替えられます。元々の環境とは関係ありません。このようにして、Python インタープリター環境とパッケージのバージョンを適切に分離できます。
以上がPython のバージョンを自由に切り替える方法について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。