在Python开发中,环境配置是所有项目的起点——版本冲突、依赖不兼容、GPU加速失效等问题,往往都源于环境搭建不规范。本文基于真实开发场景(如时间序列项目、深度学习任务),系统梳理venv、Conda 两种主流虚拟环境工具的配置步骤,结合Git Bash版本控制,形成可直接复用的操作指南,实现快速上手Python项目。
Python3官方文档:docs.python.org/3
Anaconda文档:Getting Started
Miniconda下载:Getting Started > Miniconda
Git下载:git-scm.com/downloads/
1 Python虚拟环境简介
Python项目的核心痛点是“依赖污染”:
- 全局环境中,不同项目可能需要不同版本的Python(如HyMTSF项目需3.11,HyFetcher项目需3.9)或依赖(如PyTorch 1.7与2.0),直接安装会导致版本冲突;
- 未隔离的环境难以复现,分享项目时他人可能因依赖版本不一致无法运行;
- 误删全局依赖可能导致系统级工具(如
pip
)失效。
虚拟环境的本质是为每个项目创建独立的Python运行目录,实现项目间环境隔离、依赖可复现。主流工具分为两类:
- venv:Python 3.3+ 内置,轻量、无需额外安装,适合纯 Python 项目;
- Conda:支持跨语言(Python/R/C++)、管理非 Python 依赖(如 CUDA、MKL),适合数据科学、深度学习场景。
2 venv配置指南
venv是Python官方推荐的虚拟环境工具,无需额外安装,仅需掌握“创建-激活-依赖管理”核心流程,可分为全局通用环境和项目局部环境两种场景。
2.1 安装Python并配置环境变量
venv依赖Python本体,需先确保Python已正确安装(以Windows系统为例,Linux/macOS流程类似):
- 访问Python官网,下载Python稳定版本,建议下载3.11.x(避免新版本可能的依赖兼容性问题)。
- 安装时务必勾选
Add Python 3.11 to PATH
,自动配置环境变量,避免后续“Can't find command”问题。 - 验证安装:打开终端(PowerShell/CMD),执行以下命令,输出版本号即成功
- 安装时务必勾选
python --version # 输出 Python 3.11.9
pip --version # 输出 pip 23.x.x (from ... Python311\site-packages\pip)
- 升级pip,避免旧版本依赖解析问题
- 使用清华镜像(
https://pypi.tuna.tsinghua.edu.cn/simple/
)加速,解决官方源下载慢的问题。
- 使用清华镜像(
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple/
2.2 项目局部环境
为单个项目创建专属venv,确保依赖仅作用于当前项目,适合团队协作或多项目并行开发。推荐使用此方式。
2.2.1 创建环境
步骤如下:
- 创建项目目录(以TSLib为例)并进入
mkdir C:\Users\hyplus\projects\time-series-library
cd C:\Users\hyplus\projects\time-series-library
- 创建venv环境,命令格式为
python -m venv 环境目录名
(环境目录名默认用.venv
)- 若系统安装了多个 Python 版本(如3.11和3.12),需指定版本路径(形如
C:\Python311\python.exe
),避免创建错误版本的环境
- 若系统安装了多个 Python 版本(如3.11和3.12),需指定版本路径(形如
# 创建.venv环境
python -m venv .venv
# 用指定的Python 3.11创建环境
C:\Python311\python.exe -m venv .venv
2.2.2 激活/管理环境
激活venv环境后终端前缀会显示(.venv)
,表示当前操作仅作用于该环境。不同操作系统/终端的命令如下所示:
- Windows PowerShell
.venv\Scripts\Activate.ps1
- Windows CMD(若PowerShell权限不足,可换CMD)
.venv\Scripts\activate.bat
- Linux/macOS终端、Git Bash
source .venv/bin/activate
退出环境只需使用deactivate
命令,退出后前缀 (.venv)
消失:
deactivate
要想删除环境,只需直接删除项目目录下的.venv
文件夹,无残留,安全便捷。
2.2.3 处理项目依赖
通常项目依赖会整理为requirements.txt
,可执行以下命令安装其中所有依赖,其中--no-build-isolation
表示禁用pip构建隔离环境,解决“Cannot import 'setuptools.build_meta'”等编译依赖问题:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ --no-build-isolation
亦可直接列出需安装的包:
pip install einops==0.8.0 local-attention==1.9.14 patool==1.12 -i https://pypi.tuna.tsinghua.edu.cn/simple/ --no-build-isolation
亦可手动下载wheel文件后进行安装,例如安装C:\Users\hyplus\wheels\torch-2.2.1-cp311-cp311-win-amd64.whl
的命令如下:
pip install C:\Users\hyplus\wheels\torch-2.2.1-cp311-cp311-win-amd64.whl
项目开发完成后,使用以下命令导出当前环境的依赖至requirements.txt
,方便他人复现环境:
pip freeze > requirements.txt
2.3 全局通用环境
若多个项目依赖差异小(如均为深度学习项目,需 PyTorch+CUDA),可创建全局通用venv,避免重复配置。
2.3.1 创建环境
创建全局通用环境,指定统一路径。例如以下命令在用户目录下创建全局深度学习环境,环境名为dl-env
:
mkdir C:\Users\hyplus\PythonEnvs
cd C:\Users\hyplus\PythonEnvs
python -m venv dl-env
2.3.2 激活环境
直接浏览C:\Users\hyplus\PythonEnvs
目录即可查看已创建的全局环境,每个文件夹对应一个环境。其他项目使用时,直接使用以下命令激活全局环境:
C:\Users\hyplus\PythonEnvs\dl-env\Scripts\Activate.ps1
安装通用依赖(如PyTorch GPU版、NumPy、Pandas)的方法同前文所述:
pip install torch==2.0.0+cu118 torchvision torchaudio numpy==1.23.5 pandas==1.5.3 -i https://pypi.tuna.tsinghua.edu.cn/simple/
2.4 常见问题与解决方案
- “
python3.11
无法识别”:Windows中Python可执行文件默认名为python.exe
,需用完整路径调用(如C:\Python311\python.exe --version
),或配置环境变量。 - PyTorch只能下载CPU版而非GPU版:确保命令中指定GPU源(如
--index-url https://download.pytorch.org/whl/cu118
),注意镜像站不一定有所需的版本! - 依赖安装时“版本不兼容”(如
torch==1.7.1
不支持Python 3.11):可修改requirements.txt
为兼容版本(如torch==2.0.0
),或手动。
3 Conda配置指南
Conda是Anaconda/Miniconda自带的包管理工具,非常强大,具有如下优势:
- 支持非Python依赖(如CUDA、C++编译工具)
- 可一键切换Python版本(无需手动安装多个Python)
- 适合数据科学、深度学习等复杂依赖场景(如TensorFlow与PyTorch共存)。
3.1 安装miniconda并配置国内镜像
Anaconda体积极大(约5GB),推荐安装Miniconda(仅50MB):
- 访问Miniconda官网,选择对应系统版本(如Windows 64-bit Python 3.11)并下载。
- 安装时勾选
Add Miniconda3 to my PATH environment variable
,自动配置环境变量,方便终端调用。 - 验证安装:打开终端(PowerShell/CMD),执行以下命令,输出版本号即成功
- 安装时勾选
conda --version # 输出 conda 23.x.x
- Conda官方源在国外,需配置清华/中科大镜像,加速依赖下载。使用以下命令添加清华镜像(覆盖主要频道):
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- 显示通道地址(方便调试):
conda config --set show_channel_urls yes
3.2 创建/激活环境
创建环境的命令格式为conda create -n 环境名 python=版本 依赖包
。例如使用以下命令创建时间序列项目环境(Python 3.11),预装NumPy、Pandas:
conda create -n ts-env python=3.11 numpy=1.23.5 pandas=1.5.3
激活环境的命令如下(Windows/Linux/macOS通用)。激活后,终端前缀会显示 (ts-env)
,表示当前处于该环境:
conda activate ts-env
若需安装GPU依赖(如PyTorch),可先创建空环境,再用pip安装(避免Conda版本兼容性问题):
conda create -n dl-env python=3.11
conda activate dl-env
pip install torch==2.0.0+cu118 torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple/
3.3 管理依赖
用Conda安装(优先使用,适合非 Python 依赖):
conda install matplotlib=3.7.0 scikit-learn=1.2.2
用pip安装(补充Conda源没有的包,如reformer-pytorch
):
pip install reformer-pytorch==1.4.4 tqdm==4.64.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/
Conda卸载:
conda remove matplotlib
pip卸载:
pip uninstall reformer-pytorch
3.4 管理Conda环境
导出Conda环境到environment.yml
(包含 Python 版本、所有依赖,比pip freeze
更完整):
conda env export > environment.yml
导入Conda环境:
conda env create -f environment.yml
查看所有已创建的Conda环境(两种方式):
conda info --envs
conda env list
删除指定环境(如删除ts-env
):
conda env remove -n ts-env
3.5 Conda与venv对比
对比维度 | venv | Conda |
---|---|---|
体积 | 轻量(仅Python依赖) | 较臃肿(含系统依赖) |
跨语言支持 | 仅Python | 支持Python/R/C++等 |
依赖管理 | 依赖pip,需手动处理版本冲突 | 自动解决依赖冲突,支持非Python包 |
Python版本切换 | 需手动安装多个Python | 一键切换(如conda install python=3.9 ) |
适用场景 | 纯Python项目、轻量开发 | 数据科学、深度学习、复杂依赖项目 |
4 [EX] Git Bash
相关阅读:Git项目管理工具简介
Git Bash是Git for Windows自带的终端工具,支持Linux风格命令(如ls
、cd
、grep
),同时集成Git版本控制功能,适合习惯Linux操作的开发者,也能解决Windows终端的部分兼容性问题(如venv激活权限)。由此实现Windows下的Linux风格终端与版本控制。
4.1 安装
访问Git官网,下载Windows版Git。
安装时勾选Use Git from Git Bash only
(避免与系统其他Git冲突),终端选择Git Bash Here
(方便右键打开),其他默认下一步即可。
验证:右键点击任意文件夹,选择Git Bash Here
,打开终端后执行以下命令,输出版本号即成功:
git --version
4.2 基础配置
配置用户名和邮箱(关联Git账号),其中--global
表示全局配置,对所有Git仓库生效;若需单独配置某个项目,进入项目目录后去掉该参数:
git config --global user.name "Your Name" # 你的 Git 用户名(如 GitHub 用户名)
git config --global user.email "your.email@example.com" # 你的 Git 邮箱
配置默认编辑器,通常使用VS Code作为Git默认编辑器:
git config --global core.editor "code --wait"
4.3 Linux风格终端命令
在Git Bash中,可使用Linux命令操作文件,以此完全替代Windows CMD。与Windows命令的一些重要区别如下表所示(待追加):
功能 | Windows CMD命令 | Git Bash命令 |
---|---|---|
查看当前目录文件 | dir |
ls |
创建文件夹 | mkdir 文件夹名 |
mkdir 文件夹名 |
删除文件 | del 文件名 |
rm 文件名 |
删除文件夹 | rmdir /s 文件夹名 |
rm -rf 文件夹名 |
... | ... | ... |
Git项目管理命令详见相关教程。
4.4 使用venv/Conda
在Git Bash中,可直接激活venv或Conda环境,操作与Linux终端一致。
激活venv(注意Git Bash中用source
执行二进制文件,而非直接使用“.\
”开头的文件):
source .venv/Scripts/activate
激活Conda(与Windows PowerShell一致):
conda activate ts-env