Python虚拟环境管理venv+pyenv

概念

在不同的 Python 项目中,为避免依赖冲突,或者是需要特定的 python 版本。就需要用到虚拟环境。
venv 可用于创建轻量级的虚拟环境,是 Python3 中内置的一个模块,不需要额外安装。
管理虚拟环境的还有 Condapipenv
pyenv 是一个 Python 版本管理器,可用于管理多个 Python 版本。
pip/pip3分别是 Python2/Python3 的包管理工具,在只安装了 Python3 的系统中,pippip3通常指向同一个程序。

常见工作流

Windows环境

pyenv 本身主要用于 Unix-like 系统,在 Windows 上可以使用 pyenv-win。可以通过 PowerShell 来安装:

Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"

将 pyenv 配置到环境变量中。继续在 PowerShell 中执行以下命令:

[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")

[System.Environment]::SetEnvironmentVariable('PYENV_ROOT',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")

[System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")

[System.Environment]::SetEnvironmentVariable('path', $env:USERPROFILE + "\.pyenv\pyenv-win\bin;" + $env:USERPROFILE + "\.pyenv\pyenv-win\shims;" + [System.Environment]::GetEnvironmentVariable('path', "User"),"User")

重启 PowerShell 或命令提示符。验证一下:

pyenv --version

:如果你网络不好,可以尝试别的安装方式

使用 pyenv-win 安装特定版本的 Python:

pyenv install 3.8.10
pyenv install 3.9.7

查看已安装的 Python 版本:

pyenv versions

进入项目目录,执行以下命令为当前项目指定 Python 版本:

cd C:\path\to\your\project
pyenv local 3.8.10

使用 venv 创建虚拟环境:

python -m venv myenv

说明:

这里的 myenv 是你取的虚拟环境名称。
在不同的 Python 项目或者不同的目录下,可以创建相同名字的 venv 虚拟环境。因为它本质上就是包含特定文件和文件夹结构的目录。
但为了避免混淆,建议尽量采用有意义的名称,例如 projectA_env 和 projectB_env。

激活虚拟环境:

.\myenv\Scripts\activate

使用 pip 安装项目依赖:

pip install -r requirements.txt

完成项目操作后,退出虚拟环境:

deactivate

退出后系统会恢复使用全局的 Python 环境。

说明:

虚拟环境只用创建一次,下次启动项目时,直接激活虚拟环境,然后就能运行项目了。

MacOS环境

使用 Homebrew 来安装 pyenv:
brew install pyenv
将 pyenv 配置到环境变量中,

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

安装特定版本的 Python:

pyenv install 3.8.10
pyenv install 3.9.7

查看已安装的 Python 版本:
pyenv versions

为项目指定 Python 版本:
进入项目目录,执行以下命令指定 Python 版本:

cd /path/to/your/project
pyenv local 3.8.10

在项目目录下,使用 venv 创建虚拟环境:
python -m venv myenv
说明:

这里的 myenv 是你取的虚拟环境名称。
在不同的 Python 项目或者不同的目录下,可以创建相同名字的 venv 虚拟环境。因为它本质上就是包含特定文件和文件夹结构的目录。
但为了避免混淆,建议尽量采用有意义的名称,例如 projectA_env 和 projectB_env。

激活虚拟环境:
source myenv/bin/activate

使用 pip 安装项目依赖:
pip install -r requirements.txt
另外

如果使用 pyproject.toml 文件的话,可以pip install .,这里的 . 表示当前目录,pip 会读取 pyproject.toml 文件并安装其中指定的依赖。

运行项目:
python main.py

完成项目操作后,退出虚拟环境:
deactivate
退出后系统会恢复使用全局的 Python 环境。

说明:

虚拟环境只用创建一次,下次启动项目时,直接激活虚拟环境,然后就能运行项目了。

posted @ 2025-03-26 14:00  Ritchie^._.^  阅读(205)  评论(0)    收藏  举报