一、学前花絮
对于python语言的学习,到目前为止已经输出了20几篇文章了。这些文章涵盖了python语言最基础的内容如变量、数据类型、判断语句、循环语句及输入输出、文件的使用,也包括相对高级的功能如函数、类/对象、数据结构、推导式、迭代器与生成器等功能。应该说有了以上基础,在熟练掌握的前提下,可以编写许多实用程序了。
而这篇文章属于非基础知识内容。我们设想一下,在一个单位要承担许多的项目,而不同的项目(project)对于python的模块/包的使用是不一样的。那么最科学的方法就是要为每个project创建自己的虚拟环境。在这个虚拟环境下完成对项目的开发和管理,这个project就会包含许多的目录,不同的目录下放不同的文件,既包括python自带的一些模块,也包括用户自定义的模块。
二、Python 虚拟环境的创建(venv)
2.1 类型注解的例子
Python 虚拟环境(Virtual Environment)是一个独立的 Python 运行环境,它允许你在同一台机器上为不同的项目创建隔离的 Python 环境。每个虚拟环境都有自己的::
- Python 解释器;
- 安装的包/库;
- 环境变量。
2.2 为什么需要虚拟环境
- 项目隔离:不同项目可能需要不同版本的 Python 或第三方库
- 避免冲突:防止全局 Python 环境被污染
- 依赖管理:方便记录和分享项目的依赖关系
- 测试环境:可以安全地测试新包而不影响其他项目。
2.3 场景举例:
项目 A 需要 Django 3.2 版本
项目 B 需要 Django 4.0 版本
如果在系统全局安装,两个版本会冲突。
2.4 虚拟环境工具
|
工具名称 |
类型 |
Python版本支持 |
安装方式 |
特点 |
适用场景 |
|
venv(推荐) |
内置模块 |
≥ 3.3 |
无需安装,内置 |
轻量级、官方推荐、使用简单 |
通用开发、日常项目 |
|
virtualenv |
第三方工具 |
2.x 和 3.x |
pip install virtualenv |
功能丰富、兼容多版本 |
需要兼容旧版本或高级功能 |
|
conda |
Anaconda自带 |
2.x 和 3.x |
随 Anaconda/Miniconda 安装 |
跨语言包管理、数据科学生态 |
数据科学、机器学习项目 |
本章节我们将使用 venv 创建和管理虚拟环境。
创建虚拟环境
Python 3.3+ 内置了 venv 模块,无需额外安装。检查 Python 版本:
python3 –version# 或者
python –version

查看python版本
2.5 创建虚拟环境:
# 基本语法
python3 -m venv 环境名称
# 进入项目目录
mkdir my_project && cd my_project
# 创建虚拟环境(命名为'.venv'是常见约定)
python3 -m venv .venv
参数说明:
-m venv:使用 venv 模块
.venv:虚拟环境的名称(可以自定义)
创建后的目录结构:

2.6 激活虚拟环境
激活环境后,所有 Python 和 pip 命令都会使用虚拟环境中的版本。
Windows 系统
.venvScriptsactivate
Unix/Linux/MacOS 系统
source .venv/bin/activate
激活成功后,命令行提示符一般会显示环境名称:
(.venv) $
2.7 使用虚拟环境
安装包
在激活的环境中,使用 pip 安装的包只会影响当前环境:
pip install package_name
例如:
# 安装单个包(如Django)
(.venv) pip install django==3.2.12
# 安装多个包
(.venv) pip install requests pandas
查看已安装的包

导出依赖
(.venv) pip freeze > requirements.txt
requirements.txt 文件内容示例:
Django==3.2.12
requests==2.26.0
pandas==1.3.3
从文件安装依赖
(.venv) pip install -r requirements.txt
2.8 退出虚拟环境
当完成工作后,可以退出虚拟环境:
deactivate
退出后,命令行提示符会恢复正常,Python 和 pip 命令将使用系统全局版本。
2.9 删除虚拟环境
要删除虚拟环境,只需删除对应的目录即可:
# 确保已退出环境
deactivate
# 删除目录
rm -rf .venv # Linux/macOSdel /s /q .venv # Windows (命令提示符)
三、小结
今天我们学习了python语言的虚拟环境的创建(venv)功能。这部分内容属于基础知识之上的功能。随着我们学习的深入,目标也会越来越高,距离好的程序员越来越近。以下是对上面内容的总结:
- 每个项目一个环境:为每个 Python 项目创建独立的虚拟环境
- 记录依赖:定期更新 requirements.txt 文件
- 不提交环境:在版本控制中忽略虚拟环境目录
- 命名清晰:使用有意义的虚拟环境名称
- 定期清理:删除不再使用的虚拟环境。
让我们保持学习热烈,多做练习。我们下期再见!

快乐学习
















- 最新
- 最热
只看作者