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 相关文章推荐
20招让你的Python飞起来!
Sep 27 Python
Python中标准库OS的常用方法总结大全
Jul 19 Python
apache部署python程序出现503错误的解决方法
Jul 24 Python
Python入门必须知道的11个知识点
Mar 21 Python
python安装numpy和pandas的方法步骤
May 27 Python
在python下使用tensorflow判断是否存在文件夹的实例
Jun 10 Python
itchat-python搭建微信机器人(附示例)
Jun 11 Python
selenium跳过webdriver检测并模拟登录淘宝
Jun 12 Python
浅析Windows 嵌入python解释器的过程
Jul 26 Python
python 导入数据及作图的实现
Dec 03 Python
python Matplotlib数据可视化(2):详解三大容器对象与常用设置
Sep 30 Python
pandas中DataFrame重置索引的几种方法
May 24 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 读取文件的正确方法
2009/04/29 PHP
详解PHP中的null合并运算符
2015/12/30 PHP
一个加密JavaScript的开源工具PACKER2.0.2
2006/11/04 Javascript
JS版网站风格切换实例代码
2008/10/06 Javascript
javascript 设置文本框中焦点的位置
2009/11/20 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
利用json获取字符出现次数的代码
2012/03/22 Javascript
jQuery选择器之基本选择器与层次选择器
2015/03/03 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
bootstrap与Jquery UI 按钮样式冲突的解决办法
2016/09/23 Javascript
简单实现jQuery级联菜单
2017/01/09 Javascript
JavaScript数组复制详解
2017/02/02 Javascript
解决layui-table单元格设置为百分比在ie8下不能自适应的问题
2019/09/28 Javascript
js实现移动端图片滑块验证功能
2020/09/29 Javascript
JS中循环遍历数组的四种方式总结
2021/01/23 Javascript
[01:49]一目了然!DOTA2DotA快捷操作对比第二弹
2014/05/16 DOTA
Python 字符串换行的多种方式
2018/09/06 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
Python解析、提取url关键字的实例详解
2018/12/17 Python
Python decorator拦截器代码实例解析
2020/04/04 Python
浅谈Python中的字符串
2020/06/10 Python
详解Django中异步任务之django-celery
2020/11/05 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
什么是Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议
2012/09/06 面试题
大学学年自我鉴定
2013/10/28 职场文书
优秀求职信范文分享
2013/12/19 职场文书
党建示范点实施方案
2014/03/12 职场文书
百年校庆节目主持词
2014/03/27 职场文书
施工安全汇报材料
2014/08/17 职场文书
2014年党务工作总结
2014/11/25 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
公司年会晚会开幕词
2019/04/02 职场文书
十大最强电系宝可梦,阿尔宙斯电系之一,第七被称为雷神
2022/03/18 日漫
MySQL 语句执行顺序举例解析
2022/06/05 MySQL