일상적인 개발 작업에서 이런 상황에 직면한 적이 있는지 모르겠습니다:
첫 번째 질문: Python 버전을 보면 Python 2.x와 Python 3.x의 차이가 꽤 크고, 버전이 너무 많으면 관리하기가 어렵습니다.
두 번째 질문: 요청 버전이 프로젝트 B와 프로젝트 C에 아무런 영향을 미치지 않을 수도 있습니다. 그러나 다른 프로젝트에서 동일한 패키지의 다른 버전을 사용하면 큰 영향을 미칠 수 있습니다. 그런 다음 이때 버전을 구별해야 하므로 동일한 Python 버전은 두 가지 버전의 패키지를 사용해야 합니다. 분명히 이 시나리오에서는 패키지 관리가 문제가 됩니다. 서로 다른 패키지 환경이 서로 간섭하지 않도록 하는 것이 매우 중요합니다. 일상적인 프로젝트 개발 중에 필요하고 기본적인 요구 사항입니다. 그렇다면 가장 좋은 방법은 두 개의 가상 환경입니다.
그렇다면 궁극적으로 다양한 버전의 인터프리터를 관리하는 문제를 해결하고 다양한 패키지 버전을 제어할 수 있는 기능을 제공할 수 있는 솔루션이 있습니까? 물론 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 경로 시작 부분에 shim 경로를 삽입하여 Python에서 버전 제어를 구현합니다.
앞서 언급했듯이 pyenv는 Python 버전을 제어하고 virtualenv는 Python용 비교적 성숙한 가상 환경 관리 도구이며, Pipenv는 저자 Kenneth Reitz가 작성한 도구입니다. 요청 패키지의 Python 패키지 관리 도구로서 가상 환경을 생성할 수도 있습니다. 이 문서에서는 지금은 이 도구에 대해 설명하지 않지만 이후 문서에서 소개할 것입니다.
pyenv는 Python 인터프리터 버전 관리에 중점을 두고 있으며 Python 버전을 마음대로 전환할 수 있으며 특정 가상 환경 디렉터리를 지정할 필요가 없습니다.
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
brew update brew install pyenv
MacOS에서 네트워크 문제로 인해 Brew Well을 사용할 수 없는 경우 해결방법은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!