Je ne sais pas si vous avez rencontré une telle situation dans votre travail de développement quotidien :
Première question : Concernant la version Python, la différence entre Python 2.x et Python 3.x est assez grande, et c'est difficile à gérer s'il y a trop de versions.
Deuxième question : Peut-être que les versions des requêtes n'auront aucun impact sur le projet B et le projet C. Mais utiliser différentes versions du même package dans un autre projet peut avoir un impact énorme. Ensuite, vous devez différencier les versions à ce stade, donc la même version de Python doit utiliser deux versions de packages. Évidemment, la gestion des packages est un problème dans ce scénario. Il est très important de s'assurer que les différents environnements de packages n'interfèrent pas les uns avec les autres. lors du développement quotidien du projet. C’est nécessaire et un besoin fondamental. Dans ce cas, la meilleure solution consiste à utiliser deux environnements virtuels.
Alors existe-t-il une solution qui puisse à terme résoudre le problème de la gestion des différentes versions des interpréteurs et également fournir une fonction pour contrôler les différentes versions des packages. Bien sûr, il y en a, c'est pyenv ?
Pyenv est un outil de gestion d'environnement Python issu de la communauté Ruby. Il peut facilement changer de version globale de l'interpréteur Python et peut être combiné avec le package de gestion pratique de virtualenv. Après avoir installé pyenv, il ajoutera des variables d'environnement à votre $PATH, comme suit :
❯ echo $PATH /Users/allenjol/.pyenv/plugins/pyenv-virtualenv/shims:/Users/allenjol/.pyenv/shims:/usr/local/bin:/usr/local/sbin
Donc, pyenv contrôle en fait vos variables d'environnement PATH pour changer de version de Python. Il implémente le contrôle de version sur Python en insérant un chemin shims au début du chemin PATH.
Comme mentionné précédemment, pyenv contrôle la version Python, virtualenv est un outil de gestion d'environnement virtuel relativement mature pour Python et pipenv est un outil écrit par Kenneth Reitz, l'auteur du package request. En tant qu'outil de gestion de packages Python, il peut également générer des environnements virtuels. Cet article ne discutera pas de cet outil pour l’instant, mais le présentera dans un article ultérieur.
pyenv se concentre sur la gestion des versions de l'interpréteur Python. Vous pouvez changer de version de Python à volonté et vous n'avez pas besoin de spécifier un répertoire d'environnement virtuel spécifique.
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
brew update brew install pyenv
Si vous ne pouvez pas utiliser Brew Well pour des raisons de réseau sous MacOS, il existe deux solutions :
# 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
Lorsque vous changez d'environnement virtuel Python, votre pip et votre environnement virtuel Les packages sont basculés vers votre environnement cible. Cela n'a rien à voir avec l'environnement d'origine. De cette façon, nous obtenons une bonne isolation des versions de l'environnement et des packages de l'interpréteur Python.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!