Win10下Python虚拟环境virtualenv安装和使用

1.virtualenv介绍

在python开发中,我们可能会遇到一种情况,就是当前的项目依赖的是某一个版本,但是另一个项目依赖的是另一个版本,这样就会造成依赖冲突,而virtualenv就是解决这种情况的,virtualenv通过创建一个虚拟化的python运行环境,将我们所需的依赖安装进去的,不同项目之间相互不干扰,如下所示。

2、安装virtualenv

若要使用python虚拟环境进行开发,首先需要安装virtualenv。

命令:pip install virtualenv

3、创建虚拟环境

命令:virtualenv venv

如果要创建python2的环境的话,命令为

virtualenv -p /usr/bin/python2.7 env2.7

如果要创建python3的环境话,命令为

virtualenv -p /usr/bin/python3.5 env3.5

windows如下:

virtualenv -p C:\Users\WJ\AppData\Local\Programs\Python\Python36\python.exe env3.6

如果要创建一个不带已经安装到系统的中第三方包的环境,可以加上参数 --no-site-packages,这样就可以得到一个不带任何第三方包的干净的python运行环境

命令为

virtualenv --no-site-packages myenv

4、激活虚拟环境

命令:venv\scripts\activate

注:如无法激活,直接进入到activate所在目录,使用.\activate激活

5、查看所有虚拟环境和启动虚拟环境

lsvirtualenv

workon

workon env

6、退出虚拟环境

deactivate

将指定路径添加到sitepackages目录下的virtualenv_path_extensions.pth中可以直接进行import,在启动虚拟环境时则添加到虚拟环境中,在未启动则添加到默认python环境中

add2virtualenv path

7、其他命令

cdproject: 切换目录到当前指定的project目录下, 使用前需要使用setprojectdir进行设置

cdvirtualenv: 切换到当前虚拟环境目录下

cdsitepackages: 切换到当前虚拟环境的sitepackages下

lssitepackages: 查看当前虚拟环境的sitepackages目录下的包

setprojectdir path: 设置project目录

toggleglobalsitepackages:启用/关闭系统sitepackages

whereis file:查看文件路径

$ virtualenv [OPTIONS] DEST_DIR

选项:

–version 显示当前版本号。

-h, –help 显示帮助信息。

-v, –verbose 显示详细信息。

-q, –quiet 不显示详细信息。

-p PYTHON_EXE, –python=PYTHON_EXE 指定所用的python解析器的版本,比如 –python=python2.5 就使用2.5版本的解析器创建新的隔离环境。 默认使用的是当前系统安装(/usr/bin/python)的python解析器

–clear 清空非root用户的安装,并重头开始创建隔离环境。

–no-site-packages 令隔离环境不能访问系统全局的site-packages目录。

–system-site-packages 令隔离环境可以访问系统全局的site-packages目录。

–unzip-setuptools 安装时解压Setuptools或Distribute

–relocatable 重定位某个已存在的隔离环境。使用该选项将修正脚本并令所有.pth文件使用相当路径。

–distribute 使用Distribute代替Setuptools,也可设置环境变量VIRTUALENV_DISTRIBUTE达到同样效要。

–extra-search-dir=SEARCH_DIRS 用于查找setuptools/distribute/pip发布包的目录。可以添加任意数量的–extra-search-dir路径。

–never-download 禁止从网上下载任何数据。此时,如果在本地搜索发布包失败,virtualenv就会报错。

–prompt==PROMPT 定义隔离环境的命令行前缀。

8、Win10下提示权限错误

错误信息:

.\activate : 无法加载文件 H:\envproject\venv\Scripts\activate.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 htt

ps:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。

所在位置 行:1 字符: 1

解决办法:

1.以管理员身份打开PowerShell

2.执行命令set-executionpolicy remotesigned

9、使用pycharm创建虚拟化环境

来作为本示例的编辑器,选择python2.7工作环境,新建工程virtualenvDemo,在控制台中输入命令:

virtualenv venv

这时候便会在当前的项目中创建venv文件夹,为当前项目的虚拟python运行环境,如下:

本机此时默认的python环境为python2.7,那么此时创建的虚拟环境就是以python2.7创建的虚拟化环境,如果需要选择一个python解释器来创建虚拟化环境,命令则为:

virtualenv -p /usr/bin/python2.7 venv

此时还需将当前工程的interpreter改为当前的虚拟环境,要不然会不起作用,这个不再详述。

启用

激活虚拟化环境的命令为:

source venv/bin/activate

激活后,在控制台会有一个带有(venv)的标志。

安装依赖

在以上完成之后就可以通过命令pip install 来安装python包了,这里安装python包就不需要root权限了,直接就可以安装十分方便。在venv的环境中,使用pip安装的包都不会再是全局性的包,只会在当前的虚拟环境中起作用,避免了污染系统环境。

退出当前系统环境

在控制台中输入命令deactivate后,就会推出当前的venv虚拟化环境。

(.virtualenv) # deactivate

# exit

10、ansible案例

安装必要的ansible依赖包

# pip install paramiko PyYAML jinja2

# cd ansible

# git submodule update --init lib/ansible/modules/core

# git submodule update --init lib/ansible/modules/extras

加载ansible2.1

Tip: env-setup 是 ansible 为 hacker 准备的一个脚本,用来设置一些ansible所需的环境变量

# . /home/deploy/.virtualenv/ansible/hacking/env-setup -q

$ ansible --version

ansible 2.1.0 (devel 6ddea3e915) last updated 2016/02/16 16:13:32 (GMT +800)

  lib/ansible/modules/core: (detached HEAD 8d126bd877) last updated 2016/02/16 16:19:09 (GMT +800)

  lib/ansible/modules/extras: (detached HEAD f6c5ed987f) last updated 2016/02/16 16:19:40 (GMT +800)

  config file = /etc/ansible/ansible.cfg

  configured module search path = Default w/o overrides

推荐阅读更多精彩内容