起因:
python
版本当然是越新越好,但今天体会到有些必要工具依赖python老版本,比如fail2ban这个防止暴力破解的拉黑IP工具.
什么是Pyenv
Pyenv
允许你在同一系统上安装和切换多个Python版本,- Pyenv可以创建独立的Python
虚拟环境
,每个环境都有自己的Python版本和依赖,避免了不同项目间的版本冲突。
安装pyenv
你需要首先确保你的系统已经安装了curl,如果没有,你可以通过运行以下命令来安装:
sudo apt-get update
sudo apt-get install curl
然后,你可以使用以下命令安装pyenv:
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
这将在你的主目录下的 .bashrc
或 .zshrc
文件中添加一些环境变量和路径。如果你使用的是Zsh,你可能需要编辑 .zshrc
文件,如果你使用的是Bash,你则需要编辑 .bashrc
文件。
打开你的 shell 配置文件:
nano ~/.bashrc
然后在文件的末尾添加以下行:
# Pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
保存并关闭文件,然后运行以下命令使更改生效:
source ~/.bashrc
现在,你可以使用 pyenv
命令了。你可以通过运行 pyenv --version
来检查它是否已经成功安装。
查看pyenv版本
pyenv --version
查看python3版本
python3 --version
查看可安装的 Python 版本
pyenv install --list | grep -v - | grep -E "^\s*3\.[0-9]+\.[0-9]+"
安装指定版本
注意: pyenv无法管理系统默认版本,只管理通过pyenv安装的版本
pyenv install 3.10.12
指定全局版本
放心,这不会影响某些程序使用旧版本
pyenv global 3.10.12
查看是否指定
python3 --version
查看所有通过pyenv
安装的Python版本,*
符号表示当前正在使用的 Python 版本
pyenv versions
重置为系统默认的Python版本
pyenv global system
删除指定版本,
请放心,这不会卸载系统默认的Python版本
pyenv uninstall 3.10.12
Python虚拟环境创建
Python虚拟环境(Virtual Environment)是一个独立的Python运行环境,它允许你在不同的项目中隔离Python环境,每个项目可以有自己的Python版本和依赖包,而不会影响其他项目或系统的全局Python环境。这样有以下好处:
依赖隔离:每个项目可以有自己的依赖包,避免版本冲突。一个项目可能需要一个特定版本的库,而另一个项目可能需要另一个版本,虚拟环境使得这种并存成为可能。
易于管理:在新的虚拟环境中安装和升级库时,不会影响系统Python或其他项目。你可以轻松创建、切换和删除虚拟环境,方便维护和测试。
可重复性:虚拟环境有助于重现项目环境,因为它们记录了创建时的Python版本和所有安装的库及其版本。这使得在不同的机器上轻松复制开发环境成为可能。
开发效率:由于库的安装仅限于当前环境,安装和更新库的速度更快,因为不需要处理全局环境的复杂性。
团队协作:团队成员可以在各自的虚拟环境中工作,无需担心各自的系统设置对项目的影响,每个人都可以根据项目需求配置自己的环境。
在Python开发中,使用虚拟环境是一个最佳实践,它极大地提高了开发的灵活性和可控性。
安装pyenv-virtualenv插件
首先,确保你已经安装了git
,如果没有,你可以通过运行以下命令安装:
sudo apt-get install git
然后,使用以下命令安装pyenv-virtualenv
:
git clone https://github.com/pyenv/pyenv-virtualenv.git $.pyenv/plugins/pyenv-virtualenv
使其生效
source ~/.bashrc
这将把pyenv-virtualenv
作为pyenv
的一个插件安装到你的系统中。
创建一个新的虚拟环境,你可以这样做:
pyenv virtualenv 3.10.12 vm
这将使用Python 3.10.12创建一个名为vm
的虚拟环境。你可以通过以下命令切换到这个环境:
pyenv activate vm
要退出虚拟环境,使用:
pyenv deactivate
请注意,如果你使用的是zsh,你可能需要使用pyenv shell vm
来激活环境,而不是pyenv activate vm
。
删除名为"vm"的虚拟环境, 输入y
然后按回车确定
pyenv virtualenv-delete vm
或者,如果你的版本较旧,可能会使用:
pyenv virtualenv-uninstall vm
如果你看到提示确认删除,输入y
然后按回车。删除完成后,使用pyenv versions
再次检查,“vm"应该已经被移除。
pyenv versions