Saya tidak tahu sama ada anda pernah menghadapi situasi sedemikian dalam kerja pembangunan harian anda:
Pertama sekali, soalan pertama: masalah versi Python Terdapat perbezaan besar antara Python 2 .x dan Python 3.x, dan terdapat banyak versi Tidak mudah untuk diurus.
Soalan kedua: Mungkin versi permintaan tidak akan memberi sebarang kesan dalam projek B dan projek C. Tetapi menggunakan versi berbeza pakej yang sama dalam beberapa projek lain boleh memberi impak yang besar. Kemudian anda perlu membezakan versi pada masa ini, jadi versi Python yang sama perlu menggunakan dua versi pakej Jelas sekali pengurusan pakej adalah masalah dalam senario ini. Ia adalah sangat penting untuk memastikan bahawa persekitaran pakej yang berbeza tidak mengganggu satu sama lain semasa pembangunan projek harian Ia adalah perlu dan keperluan asas. Kemudian cara terbaik ialah dua persekitaran maya.
Jadi adakah penyelesaian muktamad yang boleh menguruskan versi penterjemah yang berbeza sambil turut menyediakan fungsi untuk mengawal versi pakej yang berbeza Sudah tentu ada, ia adalah pyenv?
Pyenv ialah alat pengurusan persekitaran Python yang dicabang daripada komuniti ruby Ia boleh menukar versi penterjemah Python global dengan mudah, dan ia boleh digabungkan dengan virtualenv untuk pengurusan yang mudah. Selepas memasang pyenv, ia akan menambah pembolehubah persekitaran pada $PATH anda, seperti berikut:
❯ echo $PATH /Users/allenjol/.pyenv/plugins/pyenv-virtualenv/shims:/Users/allenjol/.pyenv/shims:/usr/local/bin:/usr/local/sbin
Jadi, pyenv sebenarnya mengawal pembolehubah persekitaran PATH anda untuk menukar versi Python. Ia melaksanakan kawalan versi pada Python dengan memasukkan laluan shims pada permulaan laluan PATH.
Seperti yang dinyatakan sebelum ini, pyenv mengawal versi Python, virtualenv ialah alat pengurusan persekitaran maya yang agak matang untuk Python, dan pipenv ialah pakej requrests Alat yang ditulis oleh Kenneth Reitz sebagai alat pengurusan pakej untuk Python, ia juga boleh menjana persekitaran maya. Artikel ini tidak akan membincangkan alat ini buat masa ini, tetapi akan memperkenalkannya dalam artikel yang akan datang.
pyenv memfokuskan pada pengurusan versi penterjemah Python Anda boleh menukar versi Python anda sesuka hati dan tidak perlu menentukan direktori persekitaran maya tertentu.
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
brew update brew install pyenv
Jika anda mempunyai sebab rangkaian di bawah MacOS Terdapat dua penyelesaian untuk gagal menggunakan brew dengan baik:
# 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
Apabila anda menukar persekitaran maya Python, pip anda dan pakej dalam persekitaran maya anda ditukar kepada persekitaran sasaran anda. Ia tiada kaitan dengan persekitaran asal. Jadi dengan cara ini ia mendapat pengasingan versi yang baik bagi persekitaran dan pakej penterjemah python.
Atas ialah kandungan terperinci Mari kita bincangkan tentang cara menukar versi Python sesuka hati. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!