Vorwort
Ich weiß nicht, ob Sie bei Ihrer täglichen Entwicklungsarbeit auf eine solche Situation gestoßen sind:
- Projekt A wurde mit der Python 2.7-Version entwickelt (vielleicht wurde es aufgrund historischer Probleme nicht aktualisiert)
- Projekt B war entwickelt mit Python 2.7. Python 3.10.4-Version wird entwickelt, vorausgesetzt, dass die Version request==2.25.1 verwendet wird Erste Frage: In Bezug auf die Python-Version ist der Unterschied zwischen Python 2.x und Python 3.x ziemlich groß und es ist schwierig, ihn zu verwalten, wenn es zu viele Versionen gibt.
- Zweite Frage: Möglicherweise haben die Versionen der Anfragen keine Auswirkungen auf Projekt B und Projekt C. Aber die Verwendung unterschiedlicher Versionen desselben Pakets in einem anderen Projekt kann große Auswirkungen haben. Dann müssen Sie die Versionen zu diesem Zeitpunkt unterscheiden, sodass die gleiche Python-Version zwei Versionen von Paketen verwenden muss. In diesem Szenario ist es sehr wichtig, sicherzustellen, dass sich unterschiedliche Paketumgebungen nicht gegenseitig stören Bei der täglichen Projektentwicklung ist es notwendig und ein Grundbedürfnis. Dann sind zwei virtuelle Umgebungen der beste Weg.
Gibt es also eine Lösung, die letztendlich das Problem der Verwaltung verschiedener Versionen von Interpretern lösen und auch eine Funktion zur Steuerung verschiedener Paketversionen bereitstellen kann, nämlich pyenv?
1. Was ist pyenv?
Pyenv ist ein Python-Umgebungsverwaltungstool, das aus der Ruby-Community stammt. Es kann problemlos die globale Python-Interpreterversion wechseln und mit dem praktischen Verwaltungspaket von virtualenv kombiniert werden. Nach der Installation von pyenv werden Umgebungsvariablen wie folgt zu Ihrem $PATH hinzugefügt:
❯ echo $PATH
/Users/allenjol/.pyenv/plugins/pyenv-virtualenv/shims:/Users/allenjol/.pyenv/shims:/usr/local/bin:/usr/local/sbin
Nach dem Login kopieren
Pyenv steuert also tatsächlich Ihre PATH-Umgebungsvariable, um die Python-Versionen zu wechseln. Es implementiert die Versionskontrolle in Python, indem es am Anfang des PATH-Pfades einen Shims-Pfad einfügt.
2. Die Beziehung und der Unterschied zwischen Pyenv, Virtualenv und Pipenv. Wie bereits erwähnt, steuert Pyenv die Python-Version, Virtualenv ist ein relativ ausgereiftes Tool zur Verwaltung virtueller Umgebungen für Python und Pipenv ist ein Tool, das von Kenneth Reitz, dem Autor, geschrieben wurde des Pakets „requests“ kann als Python-Paketverwaltungstool auch virtuelle Umgebungen generieren. In diesem Artikel wird dieses Tool vorerst nicht behandelt, sondern in einem späteren Artikel vorgestellt.
pyenv konzentriert sich auf die Verwaltung von Python-Interpreterversionen. Sie können Ihre Python-Version nach Belieben wechseln und müssen kein bestimmtes Verzeichnis der virtuellen Umgebung angeben.
3. Virtuelle Umgebung pyenv
Installieren Sie pyenv unter CentOS7
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
Nach dem Login kopieren
Installieren Sie pyenv unter MacOS
brew update
brew install pyenv
Nach dem Login kopieren
Wenn Sie brew well aus Netzwerkgründen unter MacOS nicht verwenden können, gibt es zwei Lösungen:
Ändern Sie die Quelle
Referenz https://sre.ayunw.cn/posts/terminal_configure_proxy_with_clash/ Verwenden Sie die Methode in diesem Artikel, um den Proxy einzurichten.
Umgebungsvariablen festlegen
# 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
Nach dem Login kopieren
5. Paketverwaltungs-Plug-in pyenv-virtualenvInstallieren Sie pyenv-virtualenvInstallation unter Linux
pyenv --version
Nach dem Login kopieren
Installation unter MacOS
# 查看当前版本
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
Nach dem Login kopieren
Verwenden Sie pyenv-virtualenv
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
# 配置环境变量
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
source ~/.bash_profile
Nach dem Login kopieren
Wenn Sie die Python-Umgebung wechseln , dein Pip und Ihre virtuelle Umgebung. Die Pakete werden in Ihre Zielumgebung verschoben. Es hat nichts mit der ursprünglichen Umgebung zu tun. Auf diese Weise wird eine gute Versionsisolierung der Python-Interpreterumgebung und -Pakete erreicht.
Das obige ist der detaillierte Inhalt vonLassen Sie uns darüber sprechen, wie Sie die Python-Version nach Belieben wechseln können. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!