Python中Virtualenv的理解和使用

使用virtualenv(虚拟化)进行项目管理

virtualenv:可以创建一个单独的虚拟环境,安装私有包,而不会污染全局环境,它让你的电脑从项目目录而不是系统全局的python主目录下查找和安装包。 使用virtualenv步骤如下(已经在Linux(ubuntu)上操作过,window还未实践):

1.虚拟环境使用第三方实用工具virtualenv创建,可以输入以下命令可以检查系统是否安装了virtualenv:

    virtualenv  --version

如果结果显示错误,那么你就需要安装这个工具

注意python3.3通过 venv 模块原生支持虚拟环境,命令为pyvenvpyvenv可以替代virtualenv。不过要注意,在python3.3中使用pyvenv命令创建的虚拟环境不包括pip,你需要手动安装。python3.4改进了这一缺陷,pyvenv完全可以替代virtualenv

  1. 大多数的 Linux 发行版都提供了virtualenv,例如 linux 用户可以使用下述命令安装
    sudo apt-get install python-virtualenv 或 pip install virtualenv
    
    如果你的电脑是 Mac OS X 系统,就可以使用 easy_install 安装 virtualenv
    sudo easy_install virtualenv
    
    如果你的 Window 系统或没有其它官方 virtualenv 的包的操作系统,那么安装过程要稍微复杂点,在浏览器中输入http://bitbucket.org/pypa/setuptools/ 回车后会进入setuptools安装程序的主页。在这个页面中华找到下载安装脚本的链接,脚本名为ez_setup.py。把这个保存到电脑的一个临时文件夹中,然后在这个文件夹中执行以下我命令:
        python ez_setup.py install
        easy_install virtualenv
    

注意:上述命令必须具有管理员权限的用户身份执行,在 window 系统中,请使用 以管理员身份运行选项打开命令行窗口,在基于 Unix 中,要在上面两个命令前加上 sudo,或者以根用户身份执行,一旦安装完毕virtualenv实用工具就可以从常规账号中调用

哈哈,说了这么多,还是一直在安讲安装,接下来我们就开始讲如何操作

  1. 首先要使用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的理解和使用

15 回复

补充一个用 virtualenv 创建 py3 虚拟环境的方法:
virtualenv -p python3 venv 。


Virtualenv是Python的虚拟环境工具,主要解决项目间依赖冲突的问题。它通过创建独立的Python运行环境,让每个项目都能拥有自己的包安装目录,不会影响系统Python环境或其他项目。

核心理解:

  1. 隔离性:每个虚拟环境都是独立的,包含独立的Python解释器、pip和site-packages
  2. 依赖管理:不同项目可以使用不同版本的包,比如项目A用Django 2.2,项目B用Django 3.2
  3. 环境复制:通过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 也是可以的。

回到顶部