Python中Virtualenv的理解和使用
使用virtualenv(虚拟化)进行项目管理
virtualenv:可以创建一个单独的虚拟环境,安装私有包,而不会污染全局环境,它让你的电脑从项目目录而不是系统全局的python主目录下查找和安装包。
使用virtualenv步骤如下(已经在Linux(ubuntu)上操作过,window还未实践):
1.虚拟环境使用第三方实用工具virtualenv创建,可以输入以下命令可以检查系统是否安装了virtualenv:
virtualenv --version
如果结果显示错误,那么你就需要安装这个工具
注意:python3.3通过 venv 模块原生支持虚拟环境,命令为pyvenv。pyvenv可以替代virtualenv。不过要注意,在python3.3中使用pyvenv命令创建的虚拟环境不包括pip,你需要手动安装。python3.4改进了这一缺陷,pyvenv完全可以替代virtualenv。
- 大多数的 Linux 发行版都提供了
virtualenv,例如 linux 用户可以使用下述命令安装
如果你的电脑是 Mac OS X 系统,就可以使用 easy_install 安装 virtualenvsudo apt-get install python-virtualenv 或 pip install virtualenv
如果你的 Window 系统或没有其它官方 virtualenv 的包的操作系统,那么安装过程要稍微复杂点,在浏览器中输入http://bitbucket.org/pypa/setuptools/ 回车后会进入sudo easy_install virtualenvsetuptools安装程序的主页。在这个页面中华找到下载安装脚本的链接,脚本名为ez_setup.py。把这个保存到电脑的一个临时文件夹中,然后在这个文件夹中执行以下我命令:python ez_setup.py install easy_install virtualenv
注意:上述命令必须具有管理员权限的用户身份执行,在 window 系统中,请使用 以管理员身份运行选项打开命令行窗口,在基于 Unix 中,要在上面两个命令前加上 sudo,或者以根用户身份执行,一旦安装完毕virtualenv实用工具就可以从常规账号中调用
哈哈,说了这么多,还是一直在安讲安装,接下来我们就开始讲如何操作
- 首先要使用
virtualenv来初始化项目
virtualenv env
后面的这个env 告诉 virtualenv,把所有的包都装在一个叫作env的文件夹里,这个文件夹保存的是一个全新的虚拟环境,
2. 激活virtualenv 使用前需要激活这个环境,如果你是 bash命令行(Linux 和 Mac OS X 用户),可以通过以下的命令来激活这个虚拟环境:
source env\bin\activate
如果你是 window 用户,激活命令为;
env/bin/activate
当虚拟环境被激活后, python 解释器的路径就被添加到了 PATH 中,但是这种环境不是永久的,它只会影响当前的命令行会话。为了提醒你已经激活了虚拟环境,激活虚拟环境的命令会修改命令行的提示符,加入环境名: (evn) $
然后我们就可以在这个虚拟环境中愉快的装包了,不用担心会影响全局变量
3. 退出 virtualenv
- 退出你只需要一个命令就能完成了,那就是
deactivate
转载需注明出处
Python中Virtualenv的理解和使用
补充一个用 virtualenv 创建 py3 虚拟环境的方法:
virtualenv -p python3 venv 。
Virtualenv是Python的虚拟环境工具,主要解决项目间依赖冲突的问题。它通过创建独立的Python运行环境,让每个项目都能拥有自己的包安装目录,不会影响系统Python环境或其他项目。
核心理解:
- 隔离性:每个虚拟环境都是独立的,包含独立的Python解释器、pip和site-packages
- 依赖管理:不同项目可以使用不同版本的包,比如项目A用Django 2.2,项目B用Django 3.2
- 环境复制:通过requirements.txt可以精确复制相同的开发环境
基本使用:
# 安装virtualenv
pip install virtualenv
# 创建虚拟环境
virtualenv myenv
# 激活环境(Windows)
myenv\Scripts\activate
# 激活环境(Linux/Mac)
source myenv/bin/activate
# 安装包
pip install requests
# 生成requirements.txt
pip freeze > requirements.txt
# 退出环境
deactivate
实际项目中的典型用法:
# 创建项目时先建虚拟环境
virtualenv venv
source venv/bin/activate
# 安装项目依赖
pip install django==3.2.8
pip install psycopg2-binary
# 记录依赖版本
pip freeze > requirements.txt
# 新环境部署时直接安装所有依赖
pip install -r requirements.txt
建议:每个Python项目都单独创建虚拟环境。
Python3 已经内置了 venv 模块,不需要 virtualenv 啦,
python3 -m venv --help
谢谢。又学会一个方法。
请问下,如果服务器默认是 py2.7 ,现在我装了 py3 (服务器执行 python 依然是 2.7 ),那我现在想创建一个 py3 的项目, py3 自带的虚拟环境可以满足吗?
Windows 下: scripts\activate
不试试 virtualenvwrapper?
安装 virtualenv 后,使用-p 指定 py 的版本的命令
virtualenv -p python3 venv
肯定是可以的。#2 楼的方法,我还没有试,要不你试一下吧。
可以啊
哈哈,我现在也是用这种方法,该试试新技术了
然而我还是选了 pyenv
其实 python2 也能用这种方法创建
哈哈,我还没用过 python3 尼,准确的是说没在 window 上用过
Python 的最最核心的原则就是“ get job done ”。可能有一万种方法来完成一件事,但是我只需要掌握其中的一两种即可。当然,多学习是对的。
对的呀,用-p 指定 Python 版本。直接不指定默认是二,当然 python2 也是可以的。

