我爱编程python亲好鉴定

Python基础42-虚拟环境(创建/激活/操作/删除-virt

2018-06-21  本文已影响1623人  Jacob_LJ

Python基础-虚拟环境

1 概念

2 作用

3 安装虚拟环境

安装过程中,如果出现如下 error 信息是,可以尝试切换源重新下载
阿里源,不行

$ pip install virtualenv                                                     
Looking in indexes: http://pypi.douban.com/pypi/simple
Collecting virtualenv
  The repository located at pypi.douban.com is not a trusted or secure host and is being ignored. If this repository is available via HTTPS we recommend you use HTTPS instead, otherwise you may silence this warning and allow it anyway with '--trusted-host pypi.douban.com'.
  Could not find a version that satisfies the requirement virtualenv (from versions: )
No matching distribution found for virtualenv

豆瓣源,不行

$ pip install virtualenv --trusted-host pypi.douban.com                      
Looking in indexes: http://pypi.douban.com/pypi/simple
Collecting virtualenv
  Could not find a version that satisfies the requirement virtualenv (from versions: )
No matching distribution found for virtualenv

官方源,不行

$ pip install virtualenv -i https://pypi.python.org/simple/                  
Looking in indexes: https://pypi.python.org/simple/
Collecting virtualenv
  Downloading https://files.pythonhosted.org/packages/b6/30/96a02b2287098b23b875bc8c2f58071c35d2efe84f747b64d523721dc2b5/virtualenv-16.0.0-py2.py3-none-any.whl (1.9MB)
    4% |█▌                              | 92kB 2.7kB/s eta 0:11:08Exception:
Traceback (most recent call last):
 ....
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.

清华源,可以

$ pip install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple/      
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple/
Collecting virtualenv
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/ed/ea/e20b5cbebf45d3096e8138ab74eda139595d827677f38e9dd543e6015bdf/virtualenv-15.2.0-py2.py3-none-any.whl (2.6MB)
    100% |████████████████████████████████| 2.6MB 4.1MB/s
Installing collected packages: virtualenv
Successfully installed virtualenv-15.2.0

4 使用虚拟环境

4.1 创建一个局部的隔离的虚拟环境

4.1.1 创建命令:virtualenv 虚拟环境名称

virtualenv ENV
% cd /Users/xxx/Desktop/testvirtuals                    

% virtualenv virtual1                   
Using base prefix '/usr/local/Cellar/python3/3.6.4_1/Frameworks/Python.framework/Versions/3.6'
New python executable in /Users/xxx/Desktop/testvirtuals/virtual1/bin/python3.6
Also creating executable in /Users/xxx/Desktop/testvirtuals/virtual1/bin/python
Installing setuptools, pip, wheel...done.

创建虚拟环境结果


注意:

% /Users/xxx/Desktop/testvirtuals/virtual1/bin/python3 --version
Python 3.6.4

% /Users/xxx/Desktop/testvirtuals/virtual1/bin/python --version
Python 3.6.4

4.1.2 指定 Python 版本创建虚拟环境

可选参数:-p
指定 Python2.x 版本创建虚拟环境

virtualenv -p /usr/local/bin/python2.7 testvirtual2

执行效果

$ virtualenv -p /usr/local/bin/python2.7 ENV
Running virtualenv with interpreter /usr/local/bin/python2.7
New python executable in /Users/minyu_leung/Desktop/virtual2/ENV/bin/python2.7
Also creating executable in /Users/minyu_leung/Desktop/virtual2/ENV/bin/python
Installing setuptools, pip, wheel...done.

4.1.3 是否继承系统三方库 --system-site-packages

添加参数--system-site-packages,项目检索库的时候,也会到系统的三方库中找
不添加时,默认只到虚拟环境中查找库

virtualenv --system-site-packages ENV

4.2 激活/退出 虚拟环境

在 Mac 下,激活所创建的虚拟环境步骤:

  1. cd 到虚拟环境文件夹目录
cd /Users/xxx/Desktop/testvirtuals/virtual1
  1. 执行命令 source bin/activate,shell 会打印出已激活的虚拟环境名称
$ source bin/activate
(virtual1)
带 source 命令
  1. 验证当前确实在已激活的虚拟环境中,执行命令 pip --version 和 pip list


    每次打印后都会提示(virtual1),所在环境是虚拟环境
  2. 退出虚拟环境,在激活的虚拟环境中,执行命令 deactivate

$ deactivate
注意,不用带 source 命令
  1. 验证已经退出,执行命令 pip --version 和 pip list


    结果都是来自系统环境
  2. 注意:如果系统是 Windows 的话,则不需要带上 source 命令,直接 cd 进入Scripts脚本文件夹中,然后执行 activate 和 deactivate 脚本即可。与 Mac 不同的是,虚拟环境的 bin 目录下只有 activate 脚本,没有 deactivate 脚本。


    Windows 下的虚拟环境 Scripts 文件夹文件目录
Mac 虚拟环境 bin 目录文件

使用文档中也有说 source 使用原因:

4.3 在激活状态下,操作

  1. 操作三方块
    pip install requests
  2. 执行 py 文件
    python xx.py

以上操作均作用在虚拟环境中。

4.4 删除虚拟环境

4.5 项目交接

场景:确保共享的项目能够在其他电脑上正常运行
解决:

  1. 方案一:
  1. 方案二:

技能点

5 Pycharm 中使用虚拟环境

  1. 创建项目


  2. 在创建项目时,使用虚拟环境


创建后,目录结构


  1. 在项目偏好设置里可以切换环境和安装需要的库


总结:
IDE 让虚拟环境的使用更加方便,图形化创建和切换,包的管理等。让程序员更关注项目的开发而非各种命令的记忆。

6 虚拟环境进阶使用

6.1 集中式虚拟环境管理

virtualenvwrapper
使用文档

  1. 通过virtualenvwrapper创建的虚拟环境都会统一存放到指定位置统一管理
  2. 方便在多个虚拟环境间切换
  3. 更加方便的去使用 virtualenv
mkvirtualenv venv1
workon venv2
deactivate
rmvirtualenv env1
lsvirtualenv

弊端

6.2 更加基于项目的虚拟环境管理

6.2.1 pipenv 使用优点

  1. 推荐使用:pipenv,是 pip + virtualenv 结合体,解决了virtualenvwrapper弊端
  2. 会自动帮你创建虚拟环境,以及安装三方库
  3. 会自动的记录你的项目依赖的所有三方库
  4. 使用 pipfile 和 pipfile.lock取代了 requirements.txt

使用文档
使用文档2

pipenv 命令使用一览


pipenv 命令都是参照项目中的 Pipfile 位置和内容操作的,类似 cocoapods 的 pod 命令参照podfile文件操作。

6.2.2 使用步骤

6.2.2.1 创建虚拟环境

1. cd 到项目文件夹目录下
2. 在该目录下执行命令
pipenv --two # 指定参照Python版本
或
pipenv --three

3. 查看相关信息
查看位置:pipenv --where
查看虚拟环境位置:pipenv --venv
查看解析器信息:pipenv --py

6.2.2.2 激活虚拟环境

pipenv shell

6.2.2.3 在激活状态下操作

  1. 执行 py 文件,python xx.py ,其中 python 指的是虚拟环境 Python版本
  2. 安装包
pipenv install requests

注意:不要使用 pip install 命令,使用的话虽然可以在虚拟环境中安装对应的包,但是不会更新 PIPfile 和 PIPfile.lock

命令:pipenv install [三方库名]
作用:
一、检测当前项目对应的虚拟环境是否存在,不存在则创建。如果当前项目已经存在 Pipfile 和 Pipfile.lock 文件,则参照这两个文件内容创建虚拟环境并安装文件指定的三方库
二、在虚拟环境中安装指定三方库,如果没有指定,则不安装
三、在项目目录下,通过 Pipfile 和 Pipfile.lock 记录当下已经安装的三方库信息

  1. 查看包的依赖结构
pipenv graph
  1. 卸载包
pipenv uninstall requests

6.2.2.4 退出虚拟环境

exit
或
直接关闭 shell 窗口

6.2.2.5 删除虚拟环境

先 cd 进入 Pipfile 文件目录位置
pipenv --rm

6.3 项目交接

6.3.1 上传项目时,应该包含的文件有?

应该包括文件有:

  1. 包和模块源码
  2. Pipfile 和 Pipfile.lock

6.3.2 拿到共享的项目后如何操作?

操作步骤:

  1. cd 进入获取的项目文件夹目录内
  2. 检查项目是否具有Pipfile 和 Pipfile.lock 文件 (此处应该是必须有的,因为是执行上述分享操作的人给你的项目嘛♪(*)啦啦)
  3. 执行命令:
pipenv install
上一篇下一篇

猜你喜欢

热点阅读