Python环境管理

产生想要管理python环境的由来

本人使用的是Arch系的系统做为主力系统,一切使用都正常,但在一次 sudo pacman -Syu 更新后,发现创建的python丢失了,于是就查了一下,虚拟环境会收系统中的python影响,更新了系统中的 Python 版本,导致现有虚拟环境与新的 Python 版本不兼容,还有一种就是python的路径发生改变了导致,但通常更新是不会修改路径的,所有大多是更新python导致的。于是就有了管理python环境的想法。

也算是踩坑了吧,在 arch 这类滚动更新的系统中就会有各类不同的问题出现,但这又何尝不是一种锻炼呢,不故步自封,时常出现一些问题,然后解决问题,这也是一种学习。

在这次python环境的丢失中,我也了解到了使用 python -m venv venvname 创建的虚拟环境,相当于只是将系统的python环境创建了软链接,若系统的python环境出现变动,创建的虚拟环境就会出问题。

pyenvvirtualenv

pyenvvirtualenv 是两个不同的工具,各自有不同的功能和用途,尽管它们可以一起使用来管理 Python 环境。以下是它们的区别和各自的功能:

pyenv

virtualenv

主要区别

结合使用

使用环境管理工具如 pyenvpyenv-virtualenv 可以帮助你更好地管理 Python 版本和虚拟环境,从而避免系统升级导致的环境问题。以下是如何安装和使用这些工具的步骤:

安装 pyenvpyenv-virtualenv

  1. 安装依赖
    首先安装一些构建 Python 所需的依赖包:
sudo pacman -S --needed base-devel openssl zlib xz
  1. 安装 pyenv
    使用 Git 克隆 pyenv 仓库到本地:
git clone https://github.com/pyenv/pyenv.git ~/.pyenv

然后将 pyenv 添加到你的 shell 配置文件中(例如 ~/.bashrc~/.zshrc):

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
source ~/.bashrc
  1. 安装 pyenv-virtualenv
    同样使用 Git 克隆 pyenv-virtualenv
git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

并在 ~/.bashrc~/.zshrc 中添加:

echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
source ~/.bashrc

使用 pyenv 管理 Python 版本

  1. 列出可用的 Python 版本
pyenv install --list
  1. 安装特定版本的 Python
    假设你想安装 Python 3.8.10:
pyenv install 3.8.10
  1. 设置全局 Python 版本
    将 Python 3.8.10 设置为全局默认版本:
pyenv global 3.8.10
  1. 设置当前目录 Python 版本
    在项目目录或其子目录中设置特定的 Python 版本:
cd /path/to/your/project
pyenv local 3.8.10
  1. 设置shell Python 版本
pyenv shell 3.8.10
  1. 验证当前使用的 Python 版本
python --version

这应该会显示你设置的版本号,例如 Python 3.8.10

  1. 卸载不要的版本:
# 查看已安装的版本
ls $(pyenv root)/versions
ls ~/.pyenv/versions
# 卸载旧版本,也可以直接删除对应的文件夹实现卸载
pyenv uninstall <versions>

使用 virtualenv 管理虚拟环境

  1. 安装 virtualenv
    安装 virtualenv 工具(假设你已经有一个基本的 Python 安装):
pip install virtualenv
  1. 创建虚拟环境
    在你的项目目录中创建一个虚拟环境:
cd /path/to/your/project
virtualenv venv

这将在项目目录下创建一个名为 venv 的文件夹,里面包含了独立的 Python 解释器和包目录。

  1. 激活虚拟环境
    在 Windows 上:
.\venv\Scripts\activate

在 macOS 和 Linux 上:

source venv/bin/activate
  1. 安装项目依赖
    激活虚拟环境后,你可以自由安装项目所需的 Python 包:
pip install requests
  1. 验证环境
    确保包安装在虚拟环境中:
pip list
  1. 退出虚拟环境
    使用以下命令退出虚拟环境:
deactivate

结合使用 pyenvvirtualenv

如果你需要在一个特定的 Python 版本下创建虚拟环境,可以结合使用 pyenvvirtualenv

  1. 安装 pyenv-virtualenv 插件(确保 pyenv 已安装)。
  2. 创建虚拟环境
pyenv virtualenv 3.8.10 myenv
  1. 激活虚拟环境
pyenv activate myenv
  1. 退出虚拟环境
pyenv deactivate