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简单日志处理类分享
Feb 14 Python
Python中几种操作字符串的方法的介绍
Apr 09 Python
Python中的模块和包概念介绍
Apr 13 Python
Python操作Word批量生成文章的方法
Jul 28 Python
Python实现Sqlite将字段当做索引进行查询的方法
Jul 21 Python
用python与文件进行交互的方法
Mar 01 Python
python 读文件,然后转化为矩阵的实例
Apr 23 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
Apr 27 Python
如何将你的应用迁移到Python3的三个步骤
Dec 22 Python
Python Pickle 实现在同一个文件中序列化多个对象
Dec 30 Python
Keras loss函数剖析
Jul 06 Python
Python Pandas数据分析工具用法实例
Nov 05 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 数组的一个悲剧?
2011/05/11 PHP
探讨:parse url解析URL,返回其组成部分
2013/06/14 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
2019/10/17 PHP
javascript静态的url如何传递
2007/05/03 Javascript
一些不错的js函数ajax
2008/08/20 Javascript
flash javascript之间的通讯方法小结
2008/12/20 Javascript
asp(javascript)全角半角转换代码 dbc2sbc
2009/08/06 Javascript
javascript Demo模态窗口
2009/12/06 Javascript
js对象基础实例分析
2015/01/13 Javascript
jquery结婚电子请柬特效源码分享
2015/08/21 Javascript
js实现tab选项卡切换功能
2017/01/13 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
基于vue的短信验证码倒计时demo
2017/09/13 Javascript
微信小程序switch开关选择器使用详解
2018/01/31 Javascript
详解.vue文件解析的实现
2018/06/11 Javascript
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
2020/10/29 Javascript
详解实现vue的数据响应式原理
2021/01/20 Vue.js
Django中的CACHE_BACKEND参数和站点级Cache设置
2015/07/23 Python
python线程中同步锁详解
2018/04/27 Python
python实现的读取网页并分词功能示例
2019/10/29 Python
Python bytes string相互转换过程解析
2020/03/05 Python
如何用python 操作zookeeper
2020/12/28 Python
python中os.remove()用法及注意事项
2021/01/31 Python
纯CSS3实现鼠标悬停提示气泡效果
2014/02/28 HTML / CSS
世界最大的海报和艺术印刷商店:AllPosters.com
2017/02/01 全球购物
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
戛纳奢侈品商店:Jacques Loup法国
2019/11/04 全球购物
应届毕业生个人自我评价
2013/09/20 职场文书
优秀演讲稿范文
2013/12/29 职场文书
简历上的自我评价
2014/02/03 职场文书
学校读书活动总结
2014/06/30 职场文书
幼儿园小班工作总结2015
2015/04/25 职场文书
结婚纪念日感言
2015/08/01 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书
Apache Kafka 分区重分配的实现原理解析
2022/07/15 Servers