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 10 Python
用Python解决计数原理问题的方法
Aug 04 Python
Python利用Beautiful Soup模块创建对象详解
Mar 27 Python
Python GUI Tkinter简单实现个性签名设计
Jun 19 Python
python和shell监控linux服务器的详细代码
Jun 22 Python
python实现对csv文件的列的内容读取
Jul 04 Python
python实现随机漫步算法
Aug 27 Python
python设计tcp数据包协议类的例子
Jul 23 Python
Python Django 实现简单注册功能过程详解
Jul 29 Python
基于django2.2连oracle11g解决版本冲突的问题
Jul 02 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
Jan 07 Python
教你怎么用PyCharm为同一服务器配置多个python解释器
May 31 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
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
2014/01/19 PHP
php设计模式之命令模式使用示例
2014/03/02 PHP
php文件下载处理方法分析
2015/04/22 PHP
php设计模式之观察者模式定义与用法经典示例
2019/09/19 PHP
基于jquery自己写tab滑动门(通用版)
2012/10/30 Javascript
JS动态获取当前时间,并写到特定的区域
2013/05/03 Javascript
jquery判断对象是否为空并遍历对象的简单实例
2016/07/26 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
2016/09/14 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
2016/12/26 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
React教程之Props验证的具体用法(Props Validation)
2017/09/04 Javascript
node.js-v6新版安装具体步骤(分享)
2017/09/06 Javascript
微信小程序中button组件的边框设置的实例详解
2017/09/27 Javascript
JavaScript中Object值合并方法详解
2017/12/22 Javascript
微信小程序在text文本实现多种字体样式
2019/11/08 Javascript
微信小程序实现页面浮动导航
2020/01/08 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
[05:07]DOTA2英雄梦之声_第14期_暗影恶魔
2014/06/20 DOTA
Python实现周期性抓取网页内容的方法
2015/11/04 Python
Django添加sitemap的方法示例
2018/08/06 Python
python实现坦克大战游戏 附详细注释
2020/03/27 Python
python的内存管理和垃圾回收机制详解
2019/05/18 Python
django之静态文件 django 2.0 在网页中显示图片的例子
2019/07/28 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
CSS3实现菜单悬停效果
2020/11/17 HTML / CSS
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
MCAKE蛋糕官方网站:一直都是巴黎的味道
2018/02/06 全球购物
学校食堂食品安全责任书
2014/07/28 职场文书
房屋租赁合同解除协议书
2014/10/11 职场文书
简历中自我评价范文
2015/03/11 职场文书
安全第一课观后感
2015/06/18 职场文书
SpringBoot中HttpSessionListener的简单使用方式
2022/03/17 Java/Android
浅谈GO中的Channel以及死锁的造成
2022/03/18 Golang