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实现rsa算法代码
Feb 17 Python
Python Django使用forms来实现评论功能
Aug 17 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
Aug 03 Python
对python list 遍历删除的正确方法详解
Jun 29 Python
python实现生成字符串大小写字母和数字的各种组合
Jan 01 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
Jul 04 Python
利用python计算windows全盘文件md5值的脚本
Jul 27 Python
使用sklearn的cross_val_score进行交叉验证实例
Feb 28 Python
将tf.batch_matmul替换成tf.matmul的实现
Jun 18 Python
Vs Code中8个好用的python 扩展插件
Oct 12 Python
python 还原梯度下降算法实现一维线性回归
Oct 22 Python
Pycharm中如何关掉python console
Oct 27 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
文章推荐系统(二)
2006/10/09 PHP
如何在WIN2K下安装PHP4.04
2006/10/09 PHP
php数组函数序列之array_search()- 按元素值返回键名
2011/11/04 PHP
PHP编程函数安全篇
2013/01/08 PHP
php中限制ip段访问、禁止ip提交表单的代码分享
2014/08/22 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
phpstorm 配置xdebug的示例代码
2019/03/31 PHP
JavaScript this调用规则说明
2010/03/08 Javascript
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
2011/04/07 Javascript
jQuery AjaxUpload 上传图片代码
2016/02/02 Javascript
jQuery zTree加载树形菜单功能
2016/02/25 Javascript
基于javascript实现图片切换效果
2016/04/17 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
2017/03/06 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
2018/01/30 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
2018/08/13 jQuery
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
JS画布动态实现黑客帝国背景效果
2020/11/08 Javascript
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python中zfill()方法的使用教程
2015/05/20 Python
Python下实现的RSA加密/解密及签名/验证功能示例
2017/07/17 Python
python opencv实现运动检测
2018/07/10 Python
python控制nao机器人身体动作实例详解
2019/04/29 Python
pandas计数 value_counts()的使用
2019/06/24 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
python将字母转化为数字实例方法
2019/10/04 Python
详解Canvas 跨域脱坑实践
2018/11/07 HTML / CSS
应届毕业生的自我鉴定
2013/11/13 职场文书
总经理工作职责范文
2014/03/14 职场文书
自愿离婚协议书范本
2014/09/13 职场文书
求职自我评价范文
2015/03/09 职场文书
义诊活动通知
2015/04/24 职场文书
员工规章制度范本
2015/08/07 职场文书
找规律教学反思
2016/02/23 职场文书
CSS三大特性继承性、层叠性和优先级详解
2022/01/18 HTML / CSS