Ubuntu下创建虚拟独立的Python环境全过程


Posted in Python onFebruary 10, 2017

前言

虚拟环境是程序执行时的独立执行环境,在同一台服务器中可以创建不同的虚拟环境供不同的系统使用,项目之间的运行环境保持独立性而相互不受影响。例如项目可以在基于 Python2.7 的环境中运行,而项目 B 可以在基于Python3.x 的环境中运行。在 Python 中通过 virtualenv 工具管理虚拟环境。

另外在 win 或者 mac 上也是极力推荐安装虚拟环境来管理你的 Python 环境,虚拟环境能为你带来不少好处,比如在 Mac 上,自带的 Python 环境为 2.7 。而我们 Django 开发最合适的就是 3.4+。如此一来,你就要去 Google 如何卸载或者转至 Python3.4 的环境,还是比较麻烦。一旦我们有了虚拟环境之后,我们都可以在独立的环境中去安装我们需要的模块或者包的不同的版本,这样会带来很大方便。

Install

在 Linux 系统中执行如下命令安装:

$ sudo pip install virtualenv

在 Ubuntu 中以及其衍生系统中执行如下命令安装即可:

$ sudo apt-get install python-virtualenv

Create

安装成功之后,执行如下命令创建名称为 myvenv 的虚拟环境:

$ virtualenv myvenv

提示如下:

allen@ubuntu:~$ virtualenv myvenv
Running virtualenv with interpreter /usr/bin/python2
New python executable in myvenv/bin/python2
Also creating executable in myvenv/bin/python
Installing setuptools, pip...done.

Activate

source kvenv/bin/activate

具体过程如下,可以看到我们在当前环境下查看 Python 的版本,显示是在虚拟环境 myvenv 下的:

allen@ubuntu:~$ source myvenv/bin/activate
(myvenv)allen@ubuntu:~$ which python
/home/allen/myvenv/bin/python

当然退出当前虚拟环境如下命令即可:

deactivate

Pip

在激活了虚拟环境之后,你可以在这个环境中任意的Pip 啦:

pip install Pillow

Virtualenvwrapper

其为虚拟环境扩展包,用于管理虚拟环境,如列表所有虚拟环境,删除等等。

1. 安装:

#安装virtualenv
(sudo) pip install virtualenv

#安装virtualenvwrapper
(sudo) pip install virtualenvwrapper

2. 配置:

修改~/.bash_profile或其它环境变量相关文件(如 .bashrc(我的Ubuntu15.10 下的是这个) 或用 ZSH 之后的 .zshrc),添加以下语句:

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
source /usr/local/bin/virtualenvwrapper.sh

然后运行:

source ~/.bash_profile

3. 用法:

  1. mkvirtualenv zqxt:创建运行环境zqxt
  2. workon zqxt: 工作在 zqxt 环境 或 从其它环境切换到 zqxt 环境
  3. deactivate: 退出终端环境

其它的:

  1. rmvirtualenv ENV:删除运行环境ENV
  2. mkproject mic:创建mic项目和运行环境mic
  3. mktmpenv:创建临时运行环境
  4. lsvirtualenv: 列出可用的运行环境
  5. lssitepackages: 列出当前环境安装了的包

创建的环境是独立的,互不干扰,无需sudo权限即可使用 pip 来进行包的管理。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Python 相关文章推荐
Python 获取新浪微博的最新公共微博实例分享
Jul 03 Python
Python显示进度条的方法
Sep 20 Python
跟老齐学Python之让人欢喜让人忧的迭代
Oct 02 Python
Python使用logging结合decorator模式实现优化日志输出的方法
Apr 16 Python
基于python爬虫数据处理(详解)
Jun 10 Python
python利用urllib和urllib2访问http的GET/POST详解
Sep 27 Python
Python 通配符删除文件的实例
Apr 24 Python
pandas 如何分割字符的实现方法
Jul 29 Python
Python随机数函数代码实例解析
Feb 09 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
Apr 07 Python
Python自动化之UnitTest框架实战记录
Sep 08 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
Oct 21 Python
简单谈谈Python中的几种常见的数据类型
Feb 10 #Python
Python使用QQ邮箱发送Email的方法实例
Feb 09 #Python
python3中bytes和string之间的互相转换
Feb 09 #Python
python实现下载文件的三种方法
Feb 09 #Python
Python如何实现守护进程的方法示例
Feb 08 #Python
详解Python中表达式i += x与i = i + x是否等价
Feb 08 #Python
Python实现的多线程http压力测试代码
Feb 08 #Python
You might like
php版微信公众平台入门教程之开发者认证的方法
2016/09/26 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
用js实现多域名不同文件的调用方法
2007/01/12 Javascript
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
2012/02/03 Javascript
jqgrid 编辑添加功能详细解析
2013/11/08 Javascript
超级好用的jQuery圆角插件 Corner速成
2014/08/31 Javascript
jquery实现标签支持图文排列带上下箭头按钮的选项卡
2015/03/14 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
2016/09/18 Javascript
详解js中==与===的区别
2017/01/08 Javascript
Vue中fragment.js使用方法详解
2017/03/09 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
Vue.js更改调试地址端口号的实例
2018/09/19 Javascript
ajax与jsonp的区别及用法
2018/10/16 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
python3编写C/S网络程序实例教程
2014/08/25 Python
python中实现延时回调普通函数示例代码
2017/09/08 Python
Python3中条件控制、循环与函数的简易教程
2017/11/21 Python
win8下python3.4安装和环境配置图文教程
2018/07/31 Python
对python 通过ssh访问数据库的实例详解
2019/02/19 Python
使用Django搭建web服务器的例子(最最正确的方式)
2019/08/29 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
2020/04/10 Python
Python hashlib模块的使用示例
2020/10/09 Python
HTML5 canvas基本绘图之绘制矩形
2016/06/27 HTML / CSS
expedia比利时:预订航班+酒店并省钱
2018/07/13 全球购物
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
土木工程师岗位职责
2013/11/24 职场文书
海飞丝广告词
2014/03/20 职场文书
工程质量承诺书范文
2014/03/27 职场文书
交通局领导班子群众路线教育实践活动对照检查材料思想汇报
2014/10/09 职场文书
2014年小学安全工作总结
2014/12/04 职场文书
质量保证书格式模板
2015/02/27 职场文书
Python中threading库实现线程锁与释放锁
2021/05/17 Python
Golang获取List列表元素的四种方式
2022/04/20 Golang