Python 虚拟环境 VENV(virtual environment)
一、概述
Python的venv是Python的虚拟环境管理工具,用于创建独立的Python环境,使得在同一台机器上可以同时运行多个不同版本的Python及其相关的包和依赖。venv可以帮助开发者在项目之间隔离不同的Python环境,避免包冲突和版本不一致的问题。
使用venv可以在项目中创建一个独立的Python环境,这样项目所需的依赖包可以在该环境中安装,而不会影响到系统的全局Python环境。这样可以确保项目的依赖包版本稳定,并且方便项目的迁移和共享。
二、使用方法
一个典型的使用venv环境的python项目的目录结构:
project_folder/
│
├── venv/ # 虚拟环境目录
│ ├── bin/ # 存放虚拟环境的可执行文件
│ ├── include/ # 存放头文件
│ └── lib/ # 存放库文件
│
├── src/ # 存放项目源代码
│ ├── main.py # 项目的主要代码文件
│ └── ...
│
├── requirements.txt # 项目依赖的包列表
└── ...2.1 创建一个VENV环境
mkdir python_app
cd python_app
#先创建python项目目录
#在python项目目录中创建虚拟环境
python3 -m venv myvenv-012.2 激活虚拟环境
source myenv/bin/activate验证
which python在虚拟环境中,python的路径应该在虚拟环境的路径中。
2.3 关闭虚拟环境
deactivate三、在虚拟环境中启动应用
python3 py_app.py
#启动程序
deactivate
#退出虚拟环境
ps aux | grep py_app
#查看程序运行状态四、功能更强大的virtualenv
Virtualenv 是 Python 社区一款老牌、成熟的虚拟环境管理工具,经过多个版本迭代也具备丰富的功能。并且自从 Python 3.3 版本开始,它的部分功能已也被集成到了 venv 标准库中,足见其对于 Python 虚拟环境管理工作贡献的份量如何。
从某些程度上来说,Virtualenv 和 venv 的功能十分类似,但 Virtualenv 在其官方文档中也指出了 venv 的不足之处:
is slower(创建速度慢)
is not as extendable(可扩展性差)
cannot create virtual environments for arbitrarily installed python versions(无法创建任意 Python 版本的虚拟环境)
is not upgrade-able via pip(无法通过 pip 进行升级)
does not have as rich programmatic API(没有丰富的 API 编程方法扩展)
而这些不足之处在 Virtualenv 里都有了比较完善的解决方案。
不过由于 virtualenv 本质上属于一个第三方工具,因此我们要使用 virtualenv 首先就得通过 pip 命令安装它。
pip3 install virtualenv --user4.1 创建和运行一个虚拟环境
1.创建一个新的虚拟环境:
virtualenv myenv
2.指定 Python 解释器版本创建虚拟环境:
virtualenv -p /usr/bin/python3 myenv
3.激活虚拟环境:
source myenv/bin/activate
4.退出虚拟环境:
deactivate(有实际需求后再补充。)