跳转至

环境配置

项目

项目是一份独立的代码/文档/应用的集合(一个文件夹),里面有:

  • 源代码(*.py)、文档、配置
  • 依赖描述(比如 requirements.txt / pyproject.toml
  • 运行入口(脚本、mkdocs.yml、服务启动命令等)

虚拟环境

虚拟环境是给某个项目单独准备的一套“隔离的运行环境”。以Python为例,虚拟环境有自己独立的 pythonpip 和一份只属于这个项目的第三方库安装目录。

优势:

  • 避免依赖冲突:A 项目需要 mkdocs-material==9.x,B 项目可能需要别的版本,虚拟环境让它们互不影响。
  • 不污染系统 Python:不会把一堆库装到全局里,系统更干净。
  • 更容易复现:把依赖写进 requirements.txt,别人创建同样的虚拟环境就能跑起来。

启用虚拟环境后:

  • 运行 python / pip 指向的是虚拟环境里的版本
  • pip install ... 安装的包只进这个项目的环境,不会影响别的项目

创建

在项目目录下:

python -m venv .venv

激活

每次进入虚拟环境都需要激活。

macOS / Linux:

source .venv/bin/activate

Windows (PowerShell):

.venv\Scripts\Activate.ps1

启用后通常会看到命令行前面出现 (.venv)

如果第一次在 PowerShell 里激活失败,通常是执行策略限制。可以(只改当前用户):

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

然后重新执行激活命令。

退出虚拟环境:

deactivate

导出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/ 加进 .gitignorerequirements.txt 才是应该提交的

别人/服务器安装依赖:

python -m venv .venv
.venv\Scripts\activate
python -m pip install -r requirements.txt

conda(Anaconda/Miniconda)

  • 不光能管理 Python 包,还能管理很多非 Python 的二进制依赖(如 MKL、CUDA、GDAL、某些系统库)
  • 环境管理更“全家桶”,对科学计算/数据/地理信息/深度学习(尤其涉及复杂编译依赖)更省心
  • 但也更重;而且 conda 与 pip 混用需要一点规矩(能混,但要注意顺序和冲突)

适合:数据科学、机器学习、需要复杂系统依赖的场景。

conda:隔离的是 更完整的一套运行时(含非 Python 依赖),并且可以安装不同版本的 Python

(未完待续)