#Python学习#python虚拟环境——virtualenv

前言

在Ubuntu系统中,系统通常会默认安装python2.x和3.x,像我近期买的阿里云ECS默认安装了2.7.2和3.5.2,全部pip安装的第三方包都会被放在默认的site-apckages目录下。html

若是咱们在同一台机器上同时开发多个应用程序,问题一:python的版本问题,不一样程序可能须要不一样的版本;问题二:须要的不一样第三方包管理,若是都放在一块儿总感受不太好,强迫症。python

若是能够为每个应用程序开辟一个独立的python运行环境就行了,因此就有了 virtualvendjango

下载virtualenv

apt更新

sudo apt-get update //更新软件源中的全部软件列表
sudo apt-get upgrade //对照列表,更新已安装的软件

pip安装virtualenv

pip install virtualenv //不讨论pip和pip3问题,

使用virtualenv

新建项目目录

sudo mkdir myproject 
cd myproject

建立虚拟环境

virtualenv -p /usr/bin/python3.5 --no-site-packages venv

通常项目的虚拟环境命名为venv。参数解释:app

  • -p /usr/bin/python3.5,-p指定解释器路径,能够指定虚拟环境python版本。
  • --no-site-packages,已经安装到系统Python环境中的全部第三方包都不会复制过来,获得一个不带任何第三方包的“干净”的Python运行环境。

激活虚拟环境

source venv/bin/activate

经过source命令进入虚拟环境,注意到命令提示符有所变化,前面多了一个(venv),表示当前环境是一个名为venv的Python环境。网站

安装第三方包

pip install django

在venv环境下,用pip安装的包都被安装到venv这个环境下,系统Python环境不受任何影响。也就是说,venv环境是专门针对myproject这个应用建立的。ui

退出虚拟环境

deactivate

回到正常系统环境后,再使用pip安装的第三方包就会放在系统python环境中。阿里云

virtualenv是如何建立“独立”的Python运行环境的?

原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。因此想要建立虚拟环境,系统应该先安装该版本的python环境。url

项目移植

在项目打包移植时能够抛弃虚拟环境(通常很大),利用命令生成项目所引用的第三方包,在项目部署时新建虚拟环境,从新下载这些第三方包便可。code

pip list //查看当前环境中安装的第三方库
pip freeze > requirements.txt //导出当前环境第三方库信息
pip install -r requirements.txt //移植机器从新安装第三方库

总结

virtualenv为应用程序提供了隔离的Python运行环境,解决了不一样应用间多版本的冲突问题。若是一台机子上有太多太多的项目,能够考虑使用virtualenvwrapper来统一管理。htm

Python最强的IDE——PyCharm在建立项目时会自动建立虚拟环境,安装第三方包能够经过左上角file-settings-project interpreter,点击"+"号,搜索第三方包直接安装就好。

参考连接

virtualenv - 廖雪峰的官方网站:virtualenv

python虚拟环境:virturlenv


本文版权归做者AlvinZH和博客园全部,欢迎转载和商用,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文链接,不然保留追究法律责任的权利.

相关文章
相关标签/搜索