Python虚拟环境

Python虚拟环境(virtualenv与virtualenvwrapper)

1.virtualenv是什么,有什么用?

virtualenv是创建独立Python开发环境的工具

作用:通过创建独立的环境来解决依赖,版本以及间接权限的问题。比如某个项目依赖Django 1.7,而当前全局开发环境版本为1.10.导致不兼容整个项目无法运行,这个时候使用virtualenv创建一个独立的环境去安装指定版本的包,让整个项目在这个虚拟环境中运行就行了,不会干扰本地环境,还可以随时创建删除,非常方便。

注意:virtualenv创建一个拥有自己安装目录的环境。这个环境不与其他虚拟环境共享库,能够方便的管理python版本和python库。

2.安装virtualenv

使用pip安装virtualenv

pip install virtualenv

或者需要权限的请加 sudo

sudo pip install virtualenv

3.virtualenv的基本使用

(1)创建虚拟环境

virtualenv env #创建一个名字叫做env的虚拟环境,默认python版本为3.X

需要指定python版本的使用

virtualenv env -p /usr/bin/python          #创建python2.X环境

virtualenv env -p /usr/bin/python3        #创建python3.X环境

-p以及后面的内容是python解释器的位置

查看python解释器的位置可以使用

which python          #Python2的位置

which python3        #Python3的位置


虚拟环境env内的文件

lib,所有安装的python库都会放在这个目录中的lib/pythonx.x/site-packages/下

bin,bin/python是在当前环境是使用的python解释器

想要继承本地所有的库可以使用

virtualenv --system-site-packages env

2.激活virtualenv

进入env目录下

cd env    #进入虚拟环境目录

source ./bin/activate    #激活当前虚拟环境,会在终端中显示


Python虚拟环境_第1张图片

3.关闭virtualenv

deactivate


Python虚拟环境_第2张图片

或者我们写个shell脚本启动virtualenv

vim activate.sh

按i进入编辑模式

#!/bin/bash

source env/bin/activate

然后按esc再按shift+:再按wq保存退出

然后执行. ./activate


Python虚拟环境_第3张图片
Python虚拟环境_第4张图片


Python虚拟环境_第5张图片

4.生成可打包的环境

在某些时候我们将虚拟环境直接打包,然后要用的时候直接解压使用,这在没有网络的时候是非常的方便的。(不能跨平台使用)

使用命令

virtualenv --relocatable ./

5.想要删除的虚拟环境直接将env文件夹删除就行

rm -rf env

6.还有功能更加丰富的Virtualenvwrapper

安装

sudo pip install virtualenvwrapper

配置

修改~/.bash_profile或者~/.bashrc或者装了Zsh的修改.zshrc

添加以下语句:

export WORKON_HOME=$HOME/.virtualenvs

export PROJECT_HOME=$HOME/workspace

source /usr/local/bin/virtualenvwrapper.sh

然后重启或者

source ~/.bash_profile

source ~/.bashrc

source ~/.zshr

这三个自己根据自己的系统选择

命令列表

mkvirtualenv env  #创建环境

workon  #列出已有环境

workon env1

workon env2  #切换虚拟环境

退出

deactivate

创建project

将项目创建到PROJECT_HOME目录下,实际上相当于在某个目录下创建了一个环境

mkproject


还有一些

rmvirtualenvENV:删除运行环境ENV

mktmpenv:创建临时运行环境

lsvirtualenv: 列出可用的运行环境

lssitepackages: 列出当前环境安装了的包

启动和关闭与virtualenv相同

你可能感兴趣的:(Python虚拟环境)