环境配置¶
项目¶
项目是一份独立的代码/文档/应用的集合(一个文件夹),里面有:
- 源代码(
*.py)、文档、配置 - 依赖描述(比如
requirements.txt/pyproject.toml) - 运行入口(脚本、
mkdocs.yml、服务启动命令等)
虚拟环境¶
虚拟环境是给某个项目单独准备的一套“隔离的运行环境”。以Python为例,虚拟环境有自己独立的 python、pip 和一份只属于这个项目的第三方库安装目录。
优势:
- 避免依赖冲突:A 项目需要
mkdocs-material==9.x,B 项目可能需要别的版本,虚拟环境让它们互不影响。 - 不污染系统 Python:不会把一堆库装到全局里,系统更干净。
- 更容易复现:把依赖写进
requirements.txt,别人创建同样的虚拟环境就能跑起来。
启用虚拟环境后:
- 运行
python/pip指向的是虚拟环境里的版本 pip install ...安装的包只进这个项目的环境,不会影响别的项目
创建¶
在项目目录下:
激活¶
每次进入虚拟环境都需要激活。
macOS / Linux:
Windows (PowerShell):
启用后通常会看到命令行前面出现 (.venv)。
如果第一次在 PowerShell 里激活失败,通常是执行策略限制。可以(只改当前用户):
然后重新执行激活命令。
退出虚拟环境:
导出requirements.txt¶
创建好虚拟环境之后,可以从当前环境导出requirements.txt ,便于他人安装。
PowerShell¶
cd 你的项目目录
.\.venv\Scripts\Activate.ps1 #进入虚拟环境
python -m pip install -U pip #保证用的是当前虚拟环境的 pip,并将虚拟环境的pip升级到最新版
python -m pip freeze > requirements.txt #列出当前环境里已安装的所有 Python 包及版本号,并写入到文件requirements.txt
deactivate
CMD¶
cd 你的项目目录
.venv\Scripts\activate
python -m pip install -U pip
python -m pip freeze > requirements.txt
deactivate
记得把 .venv/ 加进 .gitignore,requirements.txt 才是应该提交的。
别人/服务器安装依赖:
conda(Anaconda/Miniconda)¶
- 不光能管理 Python 包,还能管理很多非 Python 的二进制依赖(如 MKL、CUDA、GDAL、某些系统库)
- 环境管理更“全家桶”,对科学计算/数据/地理信息/深度学习(尤其涉及复杂编译依赖)更省心
- 但也更重;而且 conda 与 pip 混用需要一点规矩(能混,但要注意顺序和冲突)
适合:数据科学、机器学习、需要复杂系统依赖的场景。
conda:隔离的是 更完整的一套运行时(含非 Python 依赖),并且可以安装不同版本的 Python
(未完待续)