在 PyCharm 中创建虚拟环境是一个非常直接的过程,可以帮助你管理项目依赖,确保不同项目之间的依赖不会冲突。
通过 PyCharm 创建虚拟环境
-
打开 PyCharm 并选择或创建一个项目。
-
打开项目设置:
-
在 Windows/Linux 上,可以通过点击
File
>Settings
。 -
在 macOS 上,可以通过点击
PyCharm
>Preferences
。
-
-
选择 Python 解释器:
-
在设置窗口中,选择
Project: <YourProjectName>
>Python Interpreter
。
-
-
创建虚拟环境:
-
点击齿轮图标(位于 Python 解释器选择框旁边),选择
Add
。 -
在弹出的窗口中,你可以选择虚拟环境的类型,如下
-
这几个选项有什么区别?
以下是几种常见的虚拟环境工具(Virtualenv、Conda、System Interpreter、Pipenv、Poetry)的区别和特点总结:
1. Virtualenv
-
核心功能:
-
创建独立的 Python 环境,隔离全局环境。
-
仅支持 Python,依赖
pip
安装包。
-
-
特点:
-
轻量级,专注于 Python 包隔离。
-
需要手动激活和管理环境(
source venv/bin/activate
)。 -
依赖通过
requirements.txt
管理。
-
-
适用场景:
-
简单的 Python 项目,不需要复杂依赖管理。
-
2. Conda
-
核心功能:
-
跨平台包和环境管理工具,支持多语言(Python、R、C/C++等)。
-
可管理 Python 版本和非 Python 依赖(如科学计算库的二进制文件)。
-
-
特点:
-
内置包管理器(
conda install
),解决依赖冲突能力更强。 -
提供预编译的二进制包(适合科学计算场景,如 NumPy、TensorFlow)。
-
独立于系统 Python,可管理多个 Python 版本。
-
-
适用场景:
-
数据科学、机器学习项目,依赖复杂或需要跨语言支持。
-
3. 系统解释器(System Interpreter)
-
核心功能:
-
直接使用操作系统全局安装的 Python 环境。
-
-
特点:
-
所有项目共享同一环境,容易导致依赖冲突。
-
无需额外工具,但缺乏隔离性。
-
-
适用场景:
-
简单脚本或临时测试(不推荐用于正式项目)。
-
4. Pipenv
-
核心功能:
-
结合
Virtualenv
+pip
+ 依赖管理工具。 -
自动生成
Pipfile
和Pipfile.lock
,管理依赖版本和哈希。
-
-
特点:
-
提供依赖锁定和确定性构建(类似
package-lock.json
)。 -
支持自动激活虚拟环境(通过
pipenv shell
)。 -
官方推荐但逐渐被 Poetry 取代。
-
-
适用场景:
-
需要简化依赖管理的 Python 项目。
-
5. Poetry
-
核心功能:
-
集依赖管理、虚拟环境、打包发布于一体。
-
使用
pyproject.toml
统一配置(遵循 PEP 621 标准)。
-
-
特点:
-
自动解析依赖版本,生成
poetry.lock
文件。 -
支持打包和发布到 PyPI。
-
更现代化的工具链,替代 Pipenv。
-
-
适用场景:
-
需要规范依赖管理、打包和发布的 Python 项目。
-
6.对比表格
工具 | 语言支持 | 依赖管理 | 环境隔离 | 包管理 | 核心优势 |
---|---|---|---|---|---|
Virtualenv | Python | requirements.txt | ✔️ | pip | 轻量级,纯 Python 隔离 |
Conda | 多语言 | environment.yml | ✔️ | conda | 跨语言依赖管理,科学计算友好 |
系统解释器 | Python | 全局依赖 | ❌ | pip | 无需配置,但风险高 |
Pipenv | Python | Pipfile | ✔️ | pipenv | 依赖锁定,自动环境管理 |
Poetry | Python | pyproject.toml | ✔️ | poetry | 依赖管理 + 打包发布一体化 |
7.选择建议
-
简单项目 → Virtualenv 或系统解释器(慎用)。
-
科学计算/复杂依赖 → Conda。
-
现代 Python 开发 → Poetry(推荐)或 Pipenv。
-
需要打包发布 → Poetry。