Python3入门指南Python语言的特点和实际应用Python3环境搭建配置VSCode进行Python开发Python基础语法Python变量与数据类型Python数据类型转换Python解释器使用Python注释使用Python运算符Python数字类型Python字符串操作Python列表操作Python元组使用Python字典使用Python集合使用Python条件控制详解Python循环语句详解Python编程入门实践Python推导式详解Python迭代器和生成器Python with语句详解Python函数详解Python lambda(匿名函数)Python装饰器Python数据结构Python模块和包使用Python中__name__和__main__的用法Python输入输出:从基础到文件操作Python文件操作Python OS模块使用Python错误和异常处理Python面向对象编程Python命名空间和作用域Python虚拟环境:venv详细教程Python类型注解Python标准库常用模块Python正则表达式Python CGI编程Python MySQL(mysql-connector驱动)Python MySQL(PyMySQL驱动)Python网络编程Python发送邮件Python多线程编程Python XML解析Python JSON解析Python日期和时间处理Python操作MongoDBPython urllib库使用Python uWSGI 安装与配置Python pip包管理工具Python operator模块Python math模块Python requests模块HTTP请求Python random模块Python OpenAI库Python AI绘画制作Python statistics模块Python hashlib模块:哈希加密Python量化交易Python pyecharts数据可视化Python Selenium网页自动化Python BeautifulSoup网页数据提取Python Scrapy爬虫框架Python Markdown转HTMLPython sys模块Python Pickle模块:数据存储Python subprocess模块Python queue队列模块Python StringIO内存文件操作Python logging日志记录Python datetime日期时间处理Python re正则表达式Python csv表格数据处理Python threading 多线程编程Python asyncio 异步编程Python PyQt 图形界面开发Python 应用方向和常用库框架

Python虚拟环境:venv详细教程

在Python开发中,虚拟环境是一个很重要的工具。它能够为每个项目创建独立的Python运行环境,避免不同项目之间的包版本冲突。


为什么需要虚拟环境?

想象一下这样的场景:你正在开发两个Python项目。

项目A需要使用Django 3.2版本,因为一些老代码只兼容这个版本。
项目B是全新项目,想使用最新的Django 4.0版本。

如果在电脑上直接安装,两个版本会互相冲突。虚拟环境就是为了解决这个问题而生的。

使用虚拟环境的好处:

  • 项目隔离:每个项目有自己的Python环境和安装的包

  • 版本管理:不同项目可以使用不同版本的库

  • 环境干净:不会弄乱系统全局的Python环境

  • 便于部署:可以精确记录项目需要的所有依赖


创建虚拟环境

Python从3.3版本开始,内置了venv模块,不需要额外安装。

检查Python版本

首先确认你的Python版本:

python --version
# 或者
python3 --version

如果版本是3.3或更高,就可以使用venv。

创建虚拟环境

# 创建项目目录
mkdir my_project
cd my_project

# 创建虚拟环境
python -m venv venv

这里的venv是虚拟环境的名称,你可以用其他名字,比如.venv、env等。

理解创建的文件

创建成功后,会生成一个venv目录,里面包含:

venv/
├── bin/           # Linux/Mac系统
│   ├── activate   # 激活脚本
│   ├── python     # Python解释器
│   └── pip        # pip包管理器
├── Scripts/       # Windows系统  
│   ├── activate   # 激活脚本
│   ├── python.exe # Python解释器
│   └── pip.exe    # pip包管理器
└── Lib/           # 安装的第三方库


激活虚拟环境

创建好环境后,需要激活才能使用。

Windows系统

# 命令提示符(CMD)
venv\Scripts\activate

# PowerShell
venv\Scripts\Activate.ps1

Linux/Mac系统

source venv/bin/activate

激活成功后,命令行提示符前面会显示环境名称:

(venv) $

这表示你现在处于虚拟环境中,所有Python相关操作都会在这个环境中进行。


使用虚拟环境

安装包

在激活的环境中安装包,只会影响当前环境:

(venv) pip install django
(venv) pip install requests pandas numpy

可以指定版本号:

(venv) pip install django==3.2.12

查看已安装的包

(venv) pip list

输出类似:

Package    Version
---------- -------
Django     3.2.12
pip        21.2.4
setuptools 57.4.0

导出依赖列表

把当前环境安装的包列表保存到文件:

(venv) pip freeze > requirements.txt

requirements.txt文件内容类似:

Django==3.2.12
requests==2.26.0
pandas==1.3.5
numpy==1.21.2

从文件安装依赖

在新环境中,可以一次性安装所有依赖:

(venv) pip install -r requirements.txt


退出虚拟环境

完成工作后,退出虚拟环境:

(venv) deactivate

退出后命令行提示符会恢复正常,Python操作会回到系统全局环境。


实际项目示例

让我们看一个完整的Django项目开发流程:

# 创建项目目录
mkdir my_blog_project
cd my_blog_project

# 创建虚拟环境
python -m venv venv

# 激活环境
source venv/bin/activate  # Linux/Mac
# 或者 venv\Scripts\activate  # Windows

# 安装Django和其他依赖
(venv) pip install django==3.2.12
(venv) pip install pillow  # 图片处理库
(venv) pip install markdown  # Markdown支持

# 创建Django项目
(venv) django-admin startproject myblog
(venv) cd myblog

# 运行开发服务器
(venv) python manage.py runserver

# 导出依赖列表
(venv) pip freeze > requirements.txt


虚拟环境管理技巧

使用国内镜像加速

如果下载包速度慢,可以使用国内镜像:

(venv) pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name

或者设置永久镜像:

(venv) pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

查看环境信息

# 查看当前Python路径
(venv) which python
# 或者 where python  # Windows

# 查看Python版本
(venv) python --version

# 查看所有已安装包
(venv) pip list

删除虚拟环境

直接删除虚拟环境目录即可:

# 先退出环境
deactivate

# 删除目录
rm -rf venv  # Linux/Mac
# 或者 rmdir /s venv  # Windows


高级用法

指定Python版本

如果你安装了多个Python版本,可以指定使用哪个:

# 使用Python 3.8创建环境
python3.8 -m venv venv

# 使用Python 3.9创建环境  
python3.9 -m venv venv

继承系统包

创建可以访问系统已安装包的环境:

python -m venv --system-site-packages venv

这样虚拟环境可以直接使用系统里已经安装的包。

不包含pip的环境

创建不包含pip的轻量级环境:

python -m venv --without-pip venv


常见问题解决

激活脚本找不到

如果激活失败,检查路径是否正确:

# Windows
.\venv\Scripts\activate

# Linux/Mac
source ./venv/bin/activate

权限问题(Linux/Mac)

有时候需要给激活脚本执行权限:

chmod +x venv/bin/activate

虚拟环境无法使用

如果虚拟环境有问题,最简单的办法是删除重建:

deactivate
rm -rf venv
python -m venv venv
source venv/bin/activate


项目结构建议

一个好的项目结构应该是:

my_project/
├── venv/                 # 虚拟环境(不提交到Git)
├── src/                  # 源代码
│   ├── __init__.py
│   └── main.py
├── requirements.txt      # 依赖列表
├── README.md            # 项目说明
└── .gitignore           # Git忽略文件

在.gitignore文件中添加:

# 虚拟环境
venv/
.venv/
env/


最佳实践

  1. 每个项目单独环境:为每个Python项目创建独立的虚拟环境

  2. 及时记录依赖:安装新包后记得更新requirements.txt

  3. 不要提交环境:虚拟环境目录不要提交到版本控制

  4. 使用有意义的名称:环境名称要能反映项目内容

  5. 定期清理:删除不再使用的虚拟环境释放空间

  6. 文档说明:在README中说明如何设置环境


完整工作流程示例

# 1. 克隆项目
git clone https://github.com/user/project.git
cd project

# 2. 创建虚拟环境
python -m venv venv

# 3. 激活环境
source venv/bin/activate

# 4. 安装依赖
pip install -r requirements.txt

# 5. 开发工作...
# 编辑代码,运行测试等

# 6. 安装新包时更新依赖
pip install new_package
pip freeze > requirements.txt

# 7. 完成工作
deactivate

掌握虚拟环境的使用,能够让你的Python开发工作更加规范和专业。无论是个人项目还是团队协作,这都是一个必备的技能。

本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!

链接: https://fly63.com/course/36_2106

目录选择