前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >工具篇 | Python虚拟环境的搭建与管理【virtualenv/virtualenv-wrapper】

工具篇 | Python虚拟环境的搭建与管理【virtualenv/virtualenv-wrapper】

作者头像
LogicPanda
发布2019-07-30 14:55:36
8710
发布2019-07-30 14:55:36
举报

0. 前言

  1. 演示环境:win10+python3.6
  2. 第三方包:
    1. virtualenv
    2. virtualenvwrapper
  3. 本文内容:搭建与管理虚拟环境

1. 为什么需要使用虚拟环境

当我们在使用Python的时候,经常会使用pip来安装第三方包,那么我们会遇到这样两个问题:

  1. 所有的包都安装到了默认的路径下,如果是windows系统,可能会占用系统资源。
  2. 有时候我们的需要运行别人的代码,但是该代码与我们已安装的库冲突。

对于第一个问题,可能大家的电脑性能比较高,也不在乎这点系统资源,对于第二个问题,如果不怕折腾,也可以不断的卸载第三方库,然后在安装。如果实在懒得折腾,直接放弃Python就好了~~~

这时,虚拟环境就是很好的解决方案,虽然虚拟环境的用途不止于这两种情况。大家也可以想象一下还有什么情况下你可能会需要用到虚拟环境。

2. 搭建和使用虚拟环境

接下来进入正题,如何搭建一个虚拟环境,首先使用pip安装第三方包virtualenv。

代码语言:javascript
复制
pip install virtualenv

由于我的环境当中已经安装好了virtualenv,会显示如下结果。

代码语言:javascript
复制
C:\Users\Administrator>pip install virtualenv
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied: virtualenv in d:\python\lib\site-packages (16.4.3)

选择一个路径来建立虚拟环境,比如:“G:\demos”

代码语言:javascript
复制
G:\demos>virtualenv demoEnv
Using base prefix 'd:\\python'
New python executable in G:\demos\demoEnv\Scripts\python.exe
Installing setuptools, pip, wheel...
done.

使用命令virtualenv + 虚拟环境名称建立一个虚拟环境,如上述,我给虚拟环境起名为demoEnv

接下来看看这个命令的作用是什么。

代码语言:javascript
复制
G:\demos>dir
 驱动器 G 中的卷是 新加卷
 卷的序列号是 902C-6430

G:\demos 的目录

2019/06/03  21:59    <DIR>          .
2019/06/03  21:59    <DIR>          ..
2019/06/03  21:59    <DIR>          demoEnv
               0 个文件              0 字节
               3 个目录 375,171,985,408 可用字节

G:\demos>cd demoEnv

G:\demos\demoEnv>dir
 驱动器 G 中的卷是 新加卷
 卷的序列号是 902C-6430

G:\demos\demoEnv 的目录

2019/06/03  21:59    <DIR>          .
2019/06/03  21:59    <DIR>          ..
2019/04/12  23:40    <DIR>          Include
2019/06/03  21:59    <DIR>          Lib
2018/12/24  00:22            30,342 LICENSE.txt
2019/06/03  21:59    <DIR>          Scripts
2019/06/03  21:59    <DIR>          tcl
               1 个文件         30,342 字节
               6 个目录 375,171,985,408 可用字节

可以看到在这里目录里出现了一下新东西,这些东西就是virtualenv为我们创建的虚拟环境。

当我们需要使用这个虚拟环境的时候,在虚拟环境目录下使用命令:

代码语言:javascript
复制
Scripts\activate

想要退出虚拟环境的时候,在虚拟环境目录下使用命令:

代码语言:javascript
复制
Scripts\deactivate

演示如下:

代码语言:javascript
复制
G:\demos\demoEnv>Scripts\activate

(demoEnv) G:\demos\demoEnv>python
Python 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

(demoEnv) G:\demos\demoEnv>pip list
Package    Version
---------- -------
pip        19.1.1
setuptools 41.0.1
wheel      0.33.4

(demoEnv) G:\demos\demoEnv>Scripts\deactivate
G:\demos\demoEnv>

我们可以看到,在进入虚拟环境之后,使用pip list,只有pip,setuptoolswheel三个包。当你在命令行中进入虚拟环境中的时候,你所进行的所有开发,都只在这环境下有效。

PS:在Linux下,你需要使用souce bin/activatesource bin/deactivate来进入和退出虚拟环境

3. 使用virtualenvwrapper管理虚拟环境

那么问题来了,我们开发不同的东西,使用不同的虚拟环境, 当我们开发的东西越来越多,虚拟环境也越来越多,那么来如何进行管理呢?

我们使用virtualenvwrapper,它是更加高效友好的工具。我们使用如下命令来安装virtualenvwrapper:

代码语言:javascript
复制
pip install virtualenvwrapper

由于我的环境当中已经安装好了,显示的内容会是这样:

代码语言:javascript
复制
C:\Users\Administrator>pip install virtualenvwrapper
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied: virtualenvwrapper in d:\python\lib\site-packages (4.8.4)
Requirement already satisfied: virtualenv in d:\python\lib\site-packages (from virtualenvwrapper) (16.4.3)
Requirement already satisfied: virtualenv-clone in d:\python\lib\site-packages (from virtualenvwrapper) (0.5.2)
Requirement already satisfied: stevedore in d:\python\lib\site-packages (from virtualenvwrapper) (1.30.1)
Requirement already satisfied: six>=1.10.0 in d:\python\lib\site-packages (from stevedore->virtualenvwrapper) (1.12.0)
Requirement already satisfied: pbr!=2.1.0,>=2.0.0 in d:\python\lib\site-packages (from stevedore->virtualenvwrapper) (5.1.3)

下面说明virtaulenvwrapper使用的几个命令:

  1. 创建虚拟环境:mkvirtualenv 虚拟环境名
  2. 删除虚拟环境:rmvirtualenv 虚拟环境名
  3. 列出所有虚拟环境:lsvirtualenv
  4. 切换到某个虚拟环境:workon 虚拟环境名
  5. 退出当前虚拟环境:deactivate
  6. 进入虚拟环境目录:cdvirtualenv

PS:使用上述命令创建的虚拟环境,默认地会创建在用户目录中,当我们需要自定义某个目录作为默认目录时,在我的电脑->右键->属性->高级系统设置->环境变量->系统变量中添加一个参数WORKON_HOME,将这个参数的值设置为你需要的路径。

比如我的默认路径是:

代码语言:javascript
复制
C:\Users\Administrator>echo %WORKON_HOME%
G:\my_pyenv

下面是上述几个命令的演示:

代码语言:javascript
复制
C:\Users\Administrator>lsvirtualenv

dir /b /ad "G:\my_pyenv"
==============================================================================
algorithmenv
demoEnv
myBaseTechenv
myDataScienceEnv
myflaskenv
mytornadoenv
my_djangoenv

C:\Users\Administrator>mkvirtualenv Demo20190603
Using base prefix 'd:\\python'
New python executable in G:\my_pyenv\Demo20190603\Scripts\python.exe
Installing setuptools, pip, wheel...
done.

(Demo20190603) C:\Users\Administrator>lsvirtualenv

dir /b /ad "G:\my_pyenv"
==============================================================================
algorithmenv
Demo20190603
demoEnv
myBaseTechenv
myDataScienceEnv
myflaskenv
mytornadoenv
my_djangoenv

(Demo20190603) C:\Users\Administrator>deactivate

C:\Users\Administrator>workon Demo20190603
(Demo20190603) C:\Users\Administrator>cdvirtualenv
(Demo20190603) G:\my_pyenv\Demo20190603>deactivate

G:\my_pyenv\Demo20190603>rmvirtualenv Demo20190603

    Deleted G:\my_pyenv\Demo20190603

G:\my_pyenv>lsvirtualenv

dir /b /ad "G:\my_pyenv"
==============================================================================
algorithmenv
demoEnv
myBaseTechenv
myDataScienceEnv
myflaskenv
mytornadoenv
my_djangoenv
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程杂艺 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 为什么需要使用虚拟环境
  • 2. 搭建和使用虚拟环境
  • 3. 使用virtualenvwrapper管理虚拟环境
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档