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
网友评论