掌握 Pyenv-virtualenv:一站式 Python 版本和环境管理神器 🐍✨

896 阅读2分钟

coverImage.png

📚 主要概念

  1. Pyenv: 这是一个用于管理多个 Python 版本的工具,让你能在同一台电脑上灵活切换。
  2. Virtualenv: 这个工具用于创建独立的 Python 环境,以隔离不同项目的依赖。
  3. Pyenv-virtualenv: 这是一个 Pyenv 的插件,它整合了 Pyenv 和 Virtualenv 的功能,以便轻松管理多个 Python 版本及其独立的环境。

🌱 由来与发展

Pyenv 和 Virtualenv 最初是两个独立的项目,都旨在解决 Python 环境管理的问题。Pyenv-virtualenv 是随后推出的,目的在于整合这两个工具的优势,从而更加高效地在一个系统内管理多个 Python 版本和依赖环境。

🎯 功能与应用

  1. 创建虚拟环境: 你可以轻松创建具有特定 Python 版本的环境。
  2. 激活与停用: 切换项目时,你可以轻松地切换到相应的环境。
  3. 依赖管理: 不同项目之间,不会因为依赖库版本的不同而冲突。
  4. 全局与局部设置: Pyenv-virtualenv 支持为每个项目或者目录定制 Python 版本。

🛠 使用方法

  1. 安装: 通常,你可以通过包管理器(比如 Homebrew)来安装。

    brew install pyenv-virtualenv
    
  2. 创建虚拟环境: 使用 Python 3.9 创建一个名为 my_env 的环境。

    pyenv virtualenv 3.9.0 my_env
    
  3. 激活虚拟环境:

    pyenv activate my_env
    
  4. 停用虚拟环境:

    pyenv deactivate
    
  5. 查看所有虚拟环境:

    pyenv virtualenvs
    
  6. 删除虚拟环境:

    pyenv uninstall my_env
    

🐟 Fish 配置

如果你是 Fish Shell 的用户,请按照以下方法配置:

echo "# pyenv-virtualenv" >> ~/.config/fish/config.fish
echo "status --is-interactive; and pyenv virtualenv-init - | source" >> ~/.config/fish/config.fish
echo "# pyenv-virtualenv 禁用消息" >> ~/.config/fish/config.fish
echo "set -gx PYENV_VIRTUALENV_DISABLE_PROMPT 1" >> ~/.config/fish/config.fish

🐚 更换 Python 源

为了加速 Python 的安装过程,你可以设置环境变量 PYTHON_BUILD_MIRROR_URL,选择下面列出的镜像地址之一:

  • https://npm.taobao.org/mirrors/python/
  • https://mirrors.huaweicloud.com/python/
  • https://mirror.bjtu.edu.cn/python/
  • https://jedore.netlify.app/tools/python-mirrors/
  • https://jedore.vercel.app/tools/python-mirrors/

1️⃣ 在 CMD 中使用 set

该方法仅在当前打开的 CMD 会话中有效。

set PYTHON_BUILD_MIRROR_URL=https://mirrors.huaweicloud.com/python/

2️⃣ 在 CMD 中使用 setx

该方法会在所有新启动的 CMD 会话中永久生效。

setx PYTHON_BUILD_MIRROR_URL "https://mirrors.huaweicloud.com/python/"

3️⃣ 在 PowerShell 中使用 $env:

该方法仅在当前打开的 PowerShell 会话中有效。

$env:PYTHON_BUILD_MIRROR_URL = "https://mirrors.huaweicloud.com/python/"

4️⃣ 在 PowerShell 中使用 [Environment]::SetEnvironmentVariable()

该方法会在所有新启动的 PowerShell 会话中永久生效。

[Environment]::SetEnvironmentVariable('PYTHON_BUILD_MIRROR_URL', 'https://mirrors.huaweicloud.com/python/', [EnvironmentVariableTarget]::User)

推荐使用$env:PYTHON_BUILD_MIRROR_URL = "https://mirrors.huaweicloud.com/python/",设置完环境变量后,别忘了执行 pyenv update 来应用新的设置。

📦 更换 pip 源

为了加快 Python 包的下载速度,你可以通过更换 pip 的镜像源来实现。以下是一些常用的镜像地址:

  • 豆瓣:https://pypi.doubanio.com/simple/
  • 阿里云:https://mirrors.aliyun.com/pypi/simple/
  • 清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
  • 华为:https://mirrors.huaweicloud.com/repository/pypi/simple

1️⃣ 在 CMD 中使用 pip 命令

该方法仅针对单次的 pip 操作有效。

pip install -i https://mirrors.huaweicloud.com/repository/pypi/simple/ some-package

2️⃣ 修改 pip 配置文件

该方法会对所有的 pip 操作永久生效。

  • Windows:在 C:\Users\<用户名>\pip\pip.ini 文件中添加:

    [global]
    index-url = https://mirrors.huaweicloud.com/repository/pypi/simple/
    
  • macOS/Linux:在 ~/.pip/pip.conf 文件中添加:

    [global]
    index-url = https://mirrors.huaweicloud.com/repository/pypi/simple/
    

3️⃣ 在 PowerShell 中使用环境变量

该方法仅在当前的 PowerShell 会话中有效。

$env:PIP_INDEX_URL = "https://mirrors.huaweicloud.com/repository/pypi/simple/"

4️⃣ 在 fish shell 中设置环境变量

该方法会在新启动的 fish shell 会话中生效。

set -Ux PIP_INDEX_URL https://mirrors.huaweicloud.com/repository/pypi/simple/

完成以上设置后,你可以使用 pip install some-package 来验证新的源是否已经生效。