发现全球最佳 AI 工具

从零教你部署与精通,掌握实战变现工作流

Python 虚拟环境配置教程封面图,展示 venv、pip、conda、pipx、uv 的选择关系

Python 虚拟环境配置教程:venv、conda、pip 怎么选

本文系统讲解 Python 虚拟环境配置方法,帮助新手理解 venv、conda、pip、pipx、uv 的定位和使用场景,附 Windows、macOS、Linux 命令、VS Code 解释器选择、AI 项目环境建议和常见报错排查。

Python 虚拟环境配置教程:venv、conda、pip 怎么选

适合 Python 新手、AI 工具部署者、数据分析学习者和网站教程发布使用

标题

• Python 环境总是装崩?一篇讲透 venv、conda、pip 怎么选

• 新手必看:Python 虚拟环境配置教程,别再全局 pip install 了

• venv、conda、pip、pipx、uv 到底什么关系?看完一次搞懂

文章摘要

很多 Python 新手第一次装 AI 工具、爬虫脚本、数据分析项目时,最容易卡在“环境”这一步:pip 装了包却 import 不到,conda 建了环境 VS Code 不识别,换一台电脑依赖全部失效。本文用保姆级方式讲清楚 venv、conda、pip、pipx、uv 的定位差异,并给出 Windows、macOS、Linux 通用命令、项目实战流程和常见报错排查树。

提示:一句话结论:普通项目默认用 venv + pip;数据科学/AI 训练项目可以用 conda;命令行工具用 pipx;追求速度、锁文件和现代项目管理可以考虑 uv。

一、先搞清楚:Python 环境到底在解决什么问题?

Python 项目不像一个孤立的 .py 文件那么简单。只要你安装了 requests、pandas、torch、fastapi、gradio、langchain 等第三方包,就会遇到版本兼容、依赖冲突、系统权限、不同项目互相污染的问题。虚拟环境的价值,就是为每个项目创建一个相对独立的小空间。

概念它解决什么问题典型工具
Python 解释器决定代码由哪个 Python 版本执行,例如 Python 3.10、3.11、3.12python、py、conda python
虚拟环境让每个项目拥有独立依赖,避免互相污染venv、conda、uv venv
包安装器把第三方库安装进当前环境pip、conda、uv pip
依赖清单记录项目需要哪些包,方便复现requirements.txt、environment.yml、pyproject.toml、uv.lock
命令行工具隔离安装 black、ruff、poetry 等全局命令但不污染项目pipx、uv tool

图:Python 虚拟环境选择流程图

二、快速结论:venv、conda、pip 怎么选?

场景推荐方案原因
普通 Python 脚本、Web 后端、小型 AI Demovenv + pip标准库自带、轻量、学习成本低,是新手最稳路线。
pandas、numpy、scipy、jupyter、机器学习、CUDA 相关依赖conda / mamba对非 Python 二进制依赖、科学计算库、系统级依赖更友好。
安装 black、ruff、poetry、cookiecutter、yt-dlp 等命令行工具pipx每个 CLI 工具独立环境,不污染任何项目。
团队协作、CI/CD、追求安装速度和锁定依赖uv速度快,能统一项目、虚拟环境、依赖、工具和锁文件。
只是在当前环境安装一个包pippip 是包安装器,不是环境管理器。必须配合 venv/conda 使用。

三、venv:新手默认首选的虚拟环境方案

venv 是 Python 标准库自带的虚拟环境工具。只要你安装了官方 Python,通常就可以直接使用。它适合绝大多数普通项目:爬虫、Flask/FastAPI、脚本自动化、AI API 调用、简单模型推理 Demo。

1. 创建项目目录

mkdir my_ai_project
cd my_ai_project

2. 创建虚拟环境

# Windows 推荐
py -m venv .venv

# macOS / Linux 推荐
python3 -m venv .venv

3. 激活虚拟环境

# Windows PowerShell
.venv\Scripts\Activate.ps1

# Windows CMD
.venv\Scripts\activate.bat

# macOS / Linux
source .venv/bin/activate

4. 升级 pip 并安装依赖

python -m pip install –upgrade pip
python -m pip install requests python-dotenv

5. 固化依赖清单

python -m pip freeze > requirements.txt

# 换电脑恢复依赖
python -m pip install -r requirements.txt

提示:建议永远使用 python -m pip install 包名,而不是直接 pip install 包名。这样可以确保 pip 对应的是当前解释器,减少“装了但找不到”的问题。

四、pip:它是包安装器,不是环境管理器

pip 的职责是把包安装进“当前环境”。当前环境可能是系统 Python、venv、conda,也可能是 VS Code 当前选中的解释器。很多新手的问题,不是 pip 不会装包,而是装进了错误的环境。

常用命令作用
python -m pip –version查看当前 pip 安装位置,判断它属于哪个 Python。
python -m pip install requests安装包。
python -m pip install “fastapi[standard]”安装带 extras 的包。
python -m pip install pandas==2.2.3安装指定版本。
python -m pip list查看当前环境已安装包。
python -m pip show 包名查看某个包的版本和路径。
python -m pip uninstall 包名卸载包。
python -m pip freeze > requirements.txt导出依赖清单。
避坑:不要在系统 Python 中长期使用全局 pip install。尤其在 Linux 服务器上,系统 Python 常被系统工具依赖,随意修改容易引发权限和系统包冲突。

五、conda:更适合数据科学和复杂依赖

conda 同时是环境管理器和包管理器。它不仅能安装 Python 包,也能安装许多非 Python 二进制依赖,因此在 numpy、pandas、scipy、jupyter、机器学习、图像处理、CUDA 相关依赖场景中经常更省心。

安装器特点适合人群
Miniconda体积小,官方最小化安装器,自己按需装包。想要轻量 conda 的用户。
Anaconda Distribution内置大量数据科学包和图形界面 Navigator,体积较大。教学、数据分析入门、希望开箱即用的用户。
Miniforge社区维护,默认使用 conda-forge 频道。开源生态、科学计算、希望优先用 conda-forge 的用户。

conda 常用命令

# 创建环境
conda create -n ai python=3.12

# 激活环境
conda activate ai

# 安装包
conda install numpy pandas jupyter

# 安装 pip 包(只在当前 conda 环境里使用)
python -m pip install gradio

# 导出环境
conda env export > environment.yml

# 从环境文件恢复
conda env create -f environment.yml

提示:conda 和 pip 可以混用,但要有顺序:优先 conda install 能解决的包,再用 pip 安装 conda 没有或版本不合适的包。不要反复交叉安装和卸载,否则依赖解析会变复杂。

六、pipx:安装命令行工具的正确姿势

pipx 适合安装“能在终端直接运行的 Python 应用”,例如 black、ruff、poetry、cookiecutter、httpie 等。它会为每个应用单独创建虚拟环境,然后把命令暴露到 PATH 中。

# 安装 pipx
python -m pip install –user pipx
python -m pipx ensurepath

# 用 pipx 安装 CLI 工具
pipx install ruff
pipx install black
pipx install poetry

# 临时运行工具
pipx run cookiecutter gh:audreyfeldroy/cookiecutter-pypackage

提示:项目依赖不要用 pipx 安装。比如 requests、pandas、torch 这类库应该装进项目 venv/conda,而不是 pipx。

七、uv:更快、更现代的 Python 项目管理方案

uv 是 Astral 推出的现代 Python 工具,目标是把 pip、venv、pip-tools、pipx、poetry、pyenv 等多个流程统一到一个高速工具中。对于新手来说,可以先把它理解为“更快的 venv + pip + lockfile 工作流”。

# 创建虚拟环境
uv venv

# 激活后安装依赖
uv pip install requests fastapi

# 新建项目
uv init my_project
cd my_project
uv add requests
uv run python main.py

# 同步锁文件依赖
uv sync

功能传统做法uv 做法
创建虚拟环境python -m venv .venvuv venv
安装依赖python -m pip install 包名uv pip install 包名 或 uv add 包名
运行脚本先激活环境,再 python app.pyuv run python app.py
同步团队依赖requirements.txt / poetry.lockuv.lock + uv sync
安装命令行工具pipx install 工具名uv tool install 工具名

八、Windows、macOS、Linux 通用实战流程

方案 A:普通项目,用 venv + pip

mkdir demo_project
cd demo_project
py -m venv .venv                 # Windows
python3 -m venv .venv            # macOS / Linux
.venv\Scripts\Activate.ps1     # Windows PowerShell
source .venv/bin/activate        # macOS / Linux
python -m pip install –upgrade pip
python -m pip install requests
python – <<“PY”
import requests
print(requests.__version__)
PY

方案 B:数据分析项目,用 conda

conda create -n data python=3.12
conda activate data
conda install numpy pandas matplotlib jupyter
python -m pip install seaborn
jupyter lab

方案 C:团队项目,用 uv

uv init ai-demo
cd ai-demo
uv add fastapi uvicorn requests
uv run python -c “import fastapi, requests; print(‘ok’)”
uv sync

九、VS Code 中如何选择正确解释器

虚拟环境创建好了,还需要让 IDE 识别到它。VS Code 中最常见的问题是:终端里激活了 .venv,但编辑器右下角或 Python 扩展仍然指向系统 Python。

步骤操作
1安装 VS Code 的 Python 扩展。
2打开项目文件夹,而不是单独打开某个 .py 文件。
3按 Ctrl + Shift + P,搜索 Python: Select Interpreter。
4选择路径中包含 .venv、conda env 名称或项目目录的解释器。
5在 VS Code 终端执行 python -c “import sys; print(sys.executable)” 验证路径。

python -c “import sys; print(sys.executable)”
python -m pip –version

十、AI 项目中应该怎么选环境?

AI 场景推荐环境说明
调用 OpenAI、DeepSeek、Gemini 等 APIvenv + pip 或 uv只需要安装 SDK、requests、dotenv,venv 足够。
运行 LangChain、LlamaIndex、FastAPI 服务venv + pip / uv依赖较多,建议固定 requirements.txt 或 uv.lock。
本地运行 PyTorch 推理conda 或 venv + 官方 PyTorch 安装命令关键是匹配 Python、CUDA、torch 版本。
Stable Diffusion / ComfyUI项目自带 venv/conda 脚本优先不要随意把依赖装到已有环境里。
Jupyter 数据分析conda 更省心Notebook、科学计算和可视化库较多。
部署到服务器或容器venv / uv / Docker生产环境优先可复现,少手动操作。

十一、常见问题排查树

1. pip install 成功,但 import 失败

python -c “import sys; print(sys.executable)”
python -m pip show 包名
python -m pip install 包名

通常是“安装包的 pip”和“运行代码的 Python”不是同一个环境。用 python -m pip 重新安装,并检查 VS Code 解释器。

2. Windows 激活 .venv 报执行策略错误

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

设置后重新打开 PowerShell,再执行 .venv\Scripts\Activate.ps1。

3. Linux 提示 externally-managed-environment

这是系统 Python 的保护机制。不要用 sudo pip install 修改系统环境,应创建 venv 后再安装依赖,或使用系统包管理器安装系统级包。

4. conda solving environment 很慢

建议固定 Python 版本,减少同时安装的包数量;必要时使用 mamba 或从干净环境重新安装。不要在同一个环境中长期反复混用 conda 和 pip。

十二、推荐目录结构

my_project/
├─ .venv/                 # 虚拟环境,不提交 Git
├─ src/                   # 业务代码
├─ tests/                 # 测试代码
├─ .gitignore
├─ requirements.txt       # pip 项目依赖清单
├─ pyproject.toml         # 现代 Python 项目配置
└─ README.md

推荐 .gitignore

.venv/
__pycache__/
*.pyc
.env
.DS_Store
.idea/
.vscode/

十三、FAQ

Q1:新手到底应该先学 venv 还是 conda?

先学 venv + pip。它是 Python 官方标准库里的基础方案。等你开始做数据科学、AI 训练或复杂科学计算,再补 conda。

Q2:pip 和 conda 能不能混用?

能,但要谨慎。建议先用 conda 安装底层依赖和科学计算包,再用 pip 补充 conda 中没有的包。

Q3:每个项目都要创建一个虚拟环境吗?

建议是的。虚拟环境是可删除、可重建的,不应把多个项目混在同一个环境里。

Q4:requirements.txt 和 environment.yml 有什么区别?

requirements.txt 通常服务于 pip;environment.yml 通常服务于 conda,并可记录 Python 版本、channels 与 conda 包。

Q5:uv 能完全替代 pip 和 conda 吗?

uv 能替代很多 pip/venv/pipx/Poetry 工作流,但 conda 在部分科学计算、系统库和二进制依赖场景仍然有价值。

Q6:为什么不建议全局 pip install?

全局安装会污染系统 Python,多个项目共享依赖容易冲突,Linux 上还可能破坏系统工具依赖。

Q7:VS Code 为什么找不到我刚装的包?

多数是解释器选错。进入命令面板选择 Python: Select Interpreter,选中项目的 .venv 或 conda 环境。

官方参考来源

Python 官方文档:venv — Creation of virtual environments,https://docs.python.org/3/library/venv.html

Python Packaging User Guide:Install packages in a virtual environment using pip and venv,https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/

Python Tutorial:Virtual Environments and Packages,https://docs.python.org/3/tutorial/venv.html

conda 官方文档:Installing conda,https://docs.conda.io/projects/conda/en/stable/user-guide/install/index.html

pipx 官方文档,https://pipx.pypa.io/stable/

uv 官方文档,https://docs.astral.sh/uv/

Facebook
LinkedIn
Reddit
X
Email
WhatsApp
Telegram
Pinterest
Mix

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注