前言

在 Python 开发中,不同项目常需不同 Python 版本和依赖库。本文将详解 Windows/Linux 双平台下的环境隔离方案,彻底解决版本冲突问题!


核心工具选择

功能 Windows 方案 Linux 方案 跨平台方案
版本管理 pyenv-win pyenv conda
虚拟环境 venv virtualenv pipenv
图形界面 Anaconda Navigator Anaconda Navigator PyCharm

Windows 方案

pyenv-win + venv

1
2
3
4
5
6
7
8
9
# 1. 安装pyenv-win
iwr -useb https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1 | iex

# 2. 配置环境变量(永久生效)
[System.Environment]::SetEnvironmentVariable('PYENV', "$env:USERPROFILE\.pyenv\pyenv-win\", "User")
[System.Environment]::SetEnvironmentVariable('PATH', "$env:USERPROFILE\.pyenv\pyenv-win\bin;$env:USERPROFILE\.pyenv\pyenv-win\shims;$env:PATH", "User")

# 3. 重启终端后验证
pyenv --version

环境创建

1
2
3
4
5
6
7
8
9
10
11
12
# 1. 安装 Python 版本(使用 pyenv-win)
pyenv install 3.8.10

# 2. 创建虚拟环境
python -m venv C:\path\to\myenv

# 3. 激活环境
C:\path\to\myenv\Scripts\activate # PowerShell
# 或 C:\path\to\myenv\Scripts\activate.bat # CMD

# 4. 验证
(myenv) python --version

环境卸载

1
2
3
4
5
6
7
8
9
# 1. 停用环境
deactivate

# 2. 删除虚拟环境(直接删除文件夹)
Remove-Item -Recurse -Force C:\path\to\myenv # PowerShell
# 或 rmdir /s /q C:\path\to\myenv # CMD

# 3. 卸载 Python 版本(pyenv-win)
pyenv uninstall 3.8.10

Linux 方案

pyenv + virtualenv

1
2
3
4
5
6
7
8
9
10
11
# 1. 安装依赖
sudo apt install -y make build-essential libssl-dev zlib1g-dev

# 2. 安装pyenv
curl https://pyenv.run | bash

# 3. 配置环境变量(~/.bashrc)
echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
source ~/.bashrc

环境创建

1
2
3
4
5
6
7
8
9
10
11
# 1. 安装 Python 版本(pyenv)
pyenv install 3.8.10

# 2. 创建虚拟环境
pyenv virtualenv 3.8.10 myenv

# 3. 激活环境
pyenv activate myenv

# 4. 验证
(myenv) which python

环境卸载

1
2
3
4
5
6
7
8
9
10
11
# 1. 停用环境
pyenv deactivate

# 2. 卸载虚拟环境
pyenv uninstall myenv

# 3. 卸载 Python 版本
pyenv uninstall 3.8.10

# 4. 手动清理残留
rm -rf ~/.pyenv/versions/3.8.10

跨平台最佳选择

统一使用 conda

1
2
3
4
5
# Windows/Linux 通用命令
conda create -n project_env python=3.9
conda activate project_env
conda deactivate
conda remove -n py313 --all

使用 .python-version 文件

1
2
3
4
# 项目目录中创建文件
echo "3.8.12" > .python-version

# 这样 pyenv 会自动切换版本,无需手动激活(双平台支持)

环境迁移方案

1
2
3
4
5
# 生成通用 requirements.txt
pip freeze > requirements.txt

# 跨平台安装
pip install -r requirements.txt

©2018 - Felicx 使用 Stellar 创建
总访问 113701 次 | 本页访问 326
共发表 97 篇Blog · 总计 140.2k 字