virtualenv使用

张庚 张庚     2022-12-07     553

关键词:

本文主要讲解Python中Virtualenv的使用,其中包括如下几个环节:

  1. Virtualenv是什么?
  2. Virtualenv的出现是为了解决什么问题?
  3. 如何安装Virtualenv?
  4. 如何使用Virtualenv?
  5. virtualenv是创建“独立”的Python运行环境的原理是什么呢?
  6. 如何管理电脑上的virtualenv创建的多个虚拟环境?

下面来看看具体的内容。

1. Virtualenv是什么?

Virtualenv 是Python中的虚拟环境管理工具。

那么虚拟环境是什么呢?

虚拟环境是程序执行时的独立执行环境,在同一台服务器中可以创建不同的虚拟环境供不同的系统使用,项目之间的运行环境保持独立性而相互不受影响。我们可以在同一台电脑上构建出项目项目A在基于Python2的环境中运行,而项目B可以在基于Python3的环境中运行。

2. Virtualenv的出现是为了解决什么问题?

virtualenv为应用提供了隔离的Python运行环境,解决了不同应用间多版本的冲突问题。

例如:

如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办?

这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。

3. 如何安装Virtualenv?

使用如下命令进行安装

$ pip3 install virtualenv

4. 如何使用Virtualenv?

假定我们要开发一个新的项目,需要一套独立的Python运行环境,可以这么做:

第一步,创建目录:

zhanggeng:~$mkdir pythonV
zhanggeng:~$cd pythonV/
zhanggeng:pythonV$

第二步,创建一个独立的Python运行环境,命名为venv:

virtualenv –no-site-packages venv

zhanggeng:pythonV$virtualenv --no-site-packages venv
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.6'
New python executable in /Users/zhanggeng/pythonV/venv/bin/python3.6
Also creating executable in /Users/zhanggeng/pythonV/venv/bin/python
Installing setuptools, pip, wheel...done.
zhanggeng:pythonV$
zhanggeng:pythonV$ls
venv
zhanggeng:venv$ls
bin         include         lib      pip-selfcheck.json
zhanggeng:venv$
zhanggeng:venv$

命令virtualenv就可以创建一个独立的Python运行环境,我们还加上了参数–no-site-packages,这样,已经安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境。

第三步,进入独立的venv环境目录下:

新建的Python环境被放到当前目录下的venv目录。有了venv这个Python环境,可以用source进入该环境:

zhanggeng:pythonV$source venv/bin/activate
(venv) zhanggeng:pythonV$

注意到命令提示符变了,有个(venv)前缀,表示当前环境是一个名为venv的Python环境。

第四步,安装各种第三方包,并运行python命令:

在venv环境下,用pip安装的包都被安装到venv这个环境下,系统Python环境不受任何影响。也就是说,venv环境是专门针对pythonV这个应用创建的。

(venv) zhanggeng:pythonV$pip3 install jinja2
Collecting jinja2
  Using cached Jinja2-2.9.6-py2.py3-none-any.whl
Collecting MarkupSafe>=0.23 (from jinja2)
  Using cached MarkupSafe-1.0.tar.gz
Building wheels for collected packages: MarkupSafe
  Running setup.py bdist_wheel for MarkupSafe ... done
  Stored in directory: /Users/zhanggeng/Library/Caches/pip/wheels/88/a7/30/e39a54a87bcbe25308fa3ca64e8ddc75d9b3e5afa21ee32d57
Successfully built MarkupSafe
Installing collected packages: MarkupSafe, jinja2
Successfully installed MarkupSafe-1.0 jinja2-2.9.6
(venv) zhanggeng:pythonV$python helloworld.py
python: can't open file 'helloworld.py': [Errno 2] No such file or directory
(venv) zhanggeng:pythonV$

第五步,退出当前venv环境,使用deactivate命令:

通过命令deactivate命令就可以退出当前环境,回到系统环境。现在pip或python均是在系统Python环境下执行。

(venv) zhanggeng:pythonV$deactivate
zhanggeng:pythonV$

如何删除虚拟环境呢?

运行:rm -rf venv/命令即可!

5. virtualenv是创建“独立”的Python运行环境的原理是什么呢?

把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。

6. 如何管理电脑上的virtualenv创建的多个虚拟环境?

使用Virtaulenvwrapper。

6.1 Virtaulenvwrapper 是什么?

Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境,它可以做:

  1. 将所有虚拟环境整合在一个目录下
  2. 管理(新增,删除,复制)虚拟环境
  3. 切换虚拟环境

相关文档:http://virtualenvwrapper.readthedocs.io/en/latest/install.html

6.2 安装Virtualenvwrapper

安装Virtualenvwrapper前需要virtualenv已近安装.使用命令:

pip3 install virtualenvwrapper

zhanggeng:~$pip3 install virtualenvwrapper
Collecting virtualenvwrapper
  Downloading virtualenvwrapper-4.7.2.tar.gz (90kB)
    100% |████████████████████████████████| 92kB 440kB/s 
Requirement already satisfied: virtualenv in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (from virtualenvwrapper)
Collecting virtualenv-clone (from virtualenvwrapper)
  Downloading virtualenv-clone-0.2.6.tar.gz
Collecting stevedore (from virtualenvwrapper)
  Downloading stevedore-1.23.0-py2.py3-none-any.whl
Collecting six>=1.9.0 (from stevedore->virtualenvwrapper)
  Downloading six-1.10.0-py2.py3-none-any.whl
Collecting pbr!=2.1.0,>=2.0.0 (from stevedore->virtualenvwrapper)
  Downloading pbr-3.0.1-py2.py3-none-any.whl (99kB)
    100% |████████████████████████████████| 102kB 1.9MB/s 
Installing collected packages: virtualenv-clone, six, pbr, stevedore, virtualenvwrapper
  Running setup.py install for virtualenv-clone ... done
  Running setup.py install for virtualenvwrapper ... done
Successfully installed pbr-3.0.1 six-1.10.0 stevedore-1.23.0 virtualenv-clone-0.2.6 virtualenvwrapper-4.7.2
zhanggeng:~$

6.3 使用

使用中我碰到了问题:

  1. 设置的时候,官方文档这样说的:
Add three lines to your shell startup file (.bashrc, .profile, etc.) to set the location where the virtual environments should live, the location of your development project directories, and the location of the script installed with this package:

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh

但是我的/usr/local/bin/目录下没有virtualenvwrapper.sh这个文件

在.bash_profile中放入上面几行后,终端会提示:

/usr/bin/python: No module named virtualenvwrapper
virtualenvwrapper.sh: There was a problem running the initialization hooks. 

If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is

然后在StackOverFlow上找,也没弄好!
有哪个小伙伴,碰到过这个问题的,可以交流下!

virtualenv使用

安装$sudoaptinstallpython-virtualenv$sudo-Hpipinstallvirtualenv测试您的安装$virtualenv--version创建目录$mkdirmyproject&&cdmyproject创建虚拟环境安装好之后,我们就可以使用virtualenv命令创建Python虚拟环境了。这个命令有一个需要的参数:虚拟... 查看详情

windows使用virtualenv

安装virtualenvpipinstallvirtualenv指定python版本创建虚环境(在当前目录下生成wxy-virtualenv)virtualenv-pC:Python27python.exewxy-virtualenv 查看详情

sh使用pyenv-virtualenv强制virtualenv快速更改(代码片段)

查看详情

virtualenv安装使用

...的任务,使得在每天的日常工作简单并易于维护。什么是virtualenv?在Python的开发环境的最常用的方法是使用virtualenv包。Virtualenv是一个用来创建独立的P 查看详情

Virtualenv 在不应该使用系统包时使用

】Virtualenv在不应该使用系统包时使用【英文标题】:Virtualenvusingsystempackageswhenitshouldnot【发布时间】:2010-09-0822:30:31【问题描述】:我使用--no-site-packages选项创建了一个virtualenv环境。激活virtualenv后,我注意到在“python”提示符... 查看详情

使用虚拟环境进行开发virtualenv

1:安装Virtualenvpipinstallvirtualenv2:使用Virtualenv创建新的虚拟环境先进入到想要创建虚拟环境的目录,Virtualenv会把新创建的虚拟环境安装在此目录之下使用命令virtualenv***(虚拟环境的名字,命名***project_env)3:激活虚拟环境进入... 查看详情

安装和使用virtualenv

安装pipinstallvirtualenv操作在本地目录中(如c:/)创建一个名字如virtualenvenv这样的文件夹名字使用命令virtualenv文件名(如virtualenvflask-env)找到Script这个目录使用命令activate激活虚拟环境deactivate关闭虚拟环境 查看详情

使用 Virtualenv 安装 Django 出错了

】使用Virtualenv安装Django出错了【英文标题】:DjangoinstallationusingVirtualenvgonewrong【发布时间】:2013-10-1101:52:37【问题描述】:所以我一直在我的ubuntu(12.04)上使用python(2.7.x)和django框架。我设置基于django的项目的方式是使用virtualenv... 查看详情

Python - 使用 virtualenv 手动安装包

】Python-使用virtualenv手动安装包【英文标题】:Python-manuallyinstallpackageusingvirtualenv【发布时间】:2011-08-2404:25:24【问题描述】:我有一个要安装到我的virtualenv中的python程序-它是一个zip包,我需要解压缩然后运行​​setup.py程序-但... 查看详情

virtualenv使用

Virtualenv安装安装前最好保证pip为最新版本:python-mpipinstall-Upippipinstallvirtualenv创建新的环境virtualenv--userenv_name或virtualenv--user--no-site-packagesenv_name  #已经安装到系统Python环境中的所有第三方包都不会复制过来激活环境env_namescripts... 查看详情

如何将 pytest 与 virtualenv 一起使用?

】如何将pytest与virtualenv一起使用?【英文标题】:HowdoIusepytestwithvirtualenv?【发布时间】:2016-05-0420:35:02【问题描述】:我将pytest安装到虚拟环境中(使用virtualenv)并在该虚拟环境中运行它,但它没有使用我在该虚拟环境中安装... 查看详情

virtualenv基本使用

win安装virtualenvpip3installvirtualenv 创建虚拟环境virtualenvenv1 进入虚拟环境env1/Scripts/activate 退出虚拟环境env1/Scripts/deactivate.bat使用pycharm创建虚拟环境 查看详情

virtualenv使用笔记

fedora23x64 安装使用Virtualenv1、pipinstallvirtualenv此处需要root权限,否则提示Permission问题为root用户设置了pip的国内源su切换到root用户 如果网络不好可用国内源修改~/.pip/pip.conf(没有就创建一个),内容如下:[global]index-url=https:/... 查看详情

使用 Python3 创建 virtualenv 时出错

】使用Python3创建virtualenv时出错【英文标题】:ErrorcreatingvirtualenvwithPython3【发布时间】:2017-11-1108:50:53【问题描述】:我正在使用LinuxMint17,我正在尝试使用Python3创建一个新的virtualenv,如下所示:python3.6-mvenvenv这是我得到的错... 查看详情

在 virtualenv 中使用 pip 安装 pyaudio

】在virtualenv中使用pip安装pyaudio【英文标题】:Installingpyaudiowithpipinavirtualenv【发布时间】:2016-06-1300:07:02【问题描述】:我正在尝试使用pip安装pyaudio:pipinstallpyaudio在virtualenv中,但出现错误:error:command\'x86_64-linux-gnu-gcc\'failedwith... 查看详情

virtualenv的使用简介

#创建虚拟环境virtualenvvenv  #venv为虚拟环境目录名,目录名自定义virtualenv-p/usr/bin/python2.7venv    #-p参数指定Python解释器程序路径#启用虚拟环境sourcevenv/bin/activate#退出虚拟环境venv/bin/deactivate  virtualenvwrapper基本命令 查... 查看详情

windows下virtualenv使用

Windows下virtualenv使用winpythonvirtualenv首先在电脑上安装两个不同版本的pythonmkvirtualenv--pythonC:Python34E:python34mkvirtual是创建虚拟环境的命令--python是其他指定python版本的选项C:Python34是python34的解释器目录E:python34是环境安装的目录激活... 查看详情

Sublime text 3 和 virtualenv

】Sublimetext3和virtualenv【英文标题】:Sublimetext3andvirtualenvs【发布时间】:2014-09-1717:44:21【问题描述】:我有不同的virtualenv(使用virtualenwrapper制作),我希望能够指定每个项目使用哪个virtualenv。由于我使用SublimeREPL插件进行自定... 查看详情