为什么需要虚拟环境?¶
在开发Python项目时,我们经常会遇到不同项目需要不同版本依赖库的情况。比如,项目A需要Flask 2.0,而项目B需要Flask 1.0,如果直接安装到系统全局Python环境中,升级或降级Flask可能会破坏其他项目。虚拟环境就是用来隔离不同项目的Python运行环境,让每个项目都能拥有独立的“小仓库”,互不干扰。
一、选择虚拟环境工具:venv(Python内置)¶
Python 3.3+版本自带了虚拟环境工具venv,无需额外安装,适合新手入门。
二、搭建虚拟环境(以venv为例)¶
步骤1:创建项目目录¶
先在你想存放项目的地方,新建一个文件夹,比如flask_demo。
- Windows:打开命令提示符(CMD)或PowerShell,输入:
mkdir flask_demo
cd flask_demo
- Mac/Linux:打开终端,输入:
mkdir flask_demo
cd flask_demo
步骤2:创建虚拟环境¶
在项目目录中,执行以下命令创建虚拟环境(虚拟环境名称设为venv,可自定义):
python -m venv venv
- 如果系统同时存在Python 2和Python 3,确保用
python3 -m venv venv(Python 3专用)。 - 执行后,项目目录下会生成一个
venv文件夹,里面就是隔离的Python环境。
三、激活虚拟环境¶
虚拟环境创建后,需要先激活才能使用。不同系统激活方式不同:
Windows(CMD/PowerShell):¶
- CMD:
venv\Scripts\activate.bat
- PowerShell:
venv\Scripts\Activate.ps1
激活后,命令行开头会显示(venv),表示虚拟环境已生效。
Mac/Linux:¶
source venv/bin/activate
同样,命令行开头会显示(venv)。
四、安装依赖:Flask¶
在虚拟环境激活状态下,安装Flask(仅安装到当前虚拟环境):
pip install flask
- 如果提示
pip或pip3版本过低,可先升级:pip install --upgrade pip。
五、验证Flask安装¶
安装完成后,验证是否成功:
flask --version
如果输出类似Flask 2.3.3, Python 3.9.7,则安装成功。
六、依赖管理:导出与恢复¶
导出依赖(生成requirements.txt)¶
项目开发完成后,需要将所有依赖导出到requirements.txt,方便后续部署或分享:
pip freeze > requirements.txt
此时,项目目录下会生成requirements.txt文件,内容类似:
Flask==2.3.3
Werkzeug==2.3.7
Jinja2==3.1.2
...
恢复依赖(从requirements.txt安装)¶
别人拿到项目后,只需在虚拟环境中执行:
pip install -r requirements.txt
即可一键安装所有依赖,无需手动逐个安装。
七、退出虚拟环境¶
如果需要退出虚拟环境,执行:
deactivate
命令行的(venv)标识会消失,回到系统全局Python环境。
八、常见问题与解决¶
-
不同系统激活命令不同:
- Windows CMD用venv\Scripts\activate.bat,PowerShell用venv\Scripts\Activate.ps1(需允许执行脚本:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser)。
- Mac/Linux用source venv/bin/activate。 -
虚拟环境损坏怎么办?
直接删除项目目录下的venv文件夹,重新执行python -m venv venv即可重建。 -
为什么要区分
pip和pip3?
-pip通常对应Python 2,pip3对应Python 3。建议用python -m pip统一调用当前Python版本的pip(如python -m pip install flask)。
通过以上步骤,你已经掌握了Flask开发环境的核心技能:隔离环境、安装依赖、管理版本。后续开发中,只需在激活虚拟环境后执行pip install,即可避免依赖冲突,让项目更稳定、可复现。