(这是打算写的这个系列 http://www.v2ex.com/t/33489 的第一篇,我不会太监,毕竟这些内容本来在公司内部或多或少就会有整理,不过工作本身忙,进度快慢不能保证,各位谅解)

般而言,所有python相关的包会装在系统目录里,譬如/usr/lib/

或者/usr/local/lib/,这样的话,假设两个开发分支要求的库不一样,譬如对应在线版本的开发环境使用

Django1.3,但是一个新的开发分支基于Django1.4,两者就会互相影响。

Virtualenv 是一个虚拟环境程序,可以把开发环境隔离。基本思想是建立不同的环境目录,其中装有独立的各类包,甚至也可以是独立的不同版本python程序。

1. 安装 virtualenv 和 virtualenvwrapper,后者是一套很有用的扩展,提供了方便切换开发环境的快捷命令

以下命令都是基于Ubuntu的(Mac OS 上可以参考 https://gist.github.com/1208841 )

sudo pip install virtualenv

sudo pip install virtualenvwrapper

#2 在用户的home目录下创建一个名为product的虚拟环境

export WORKON_HOME=~/envs

mkdir $WORKON_HOME

source /usr/local/bin/virtualenvwrapper.sh

mkvirtualenv --no-site-packages product #--no-site-packages 参数代表所有的Python包都从虚拟环境里找,任何时候都不去例如/usr/lib/python/这类全局环境里查找

初期用virtualenv的时候的确不需要系统的安装包,即创建一个裸环境,可以使用这个参数。

步完成后,就建立了一个名为product的虚拟环境目录,用workon

product便能切换这个环境下,所谓切换,就是说这时候如果执行which

python,就会发现现在的python不是/usr/bin/python,而是~/envs/product/bin/python,相应的所有的

第三方python依赖也都在~/envs/product/lib/python2.7/site-packages/ 下。

#3 为了偷懒,可以在bashrc里建立一个alias,譬如

alias product='source ~/.bashrc; workon product; cd ~/envs/product/src'

alias stage='source ~/.bashrc; workon stage; cd ~/envs/stage/src'

这样执行product,stage就能分别切换到相应的虚拟工作环境,同时进入工作目录。

#4 未来要装相应的库,直接用pip即可,但是要确保pip也是相应的虚拟环境里的,可以用which pip检查,譬如要装django,就可以用

pip install django

pip也可以列出当前虚拟环境里所有的依赖,可以用这个办法将所有这些依赖写入一个文件,例如

pip freeze > product.dev     ##导出已安装的包列表

如果在另外一个环境里要重新安装这些依赖,执行

pip install -r product.dev

即可

备注:virtualenvwrapper的使用:

列出虚拟环境列表workon

也可以使用lsvirtualenv

新建虚拟环境mkvirtualenv [虚拟环境名称]

启动/切换虚拟环境workon [虚拟环境名称]

删除虚拟环境rmvirtualenv [虚拟环境名称]

离开虚拟环境deactivate

python工作环境创建_VirtualEnv 和Pip 构建Python的虚拟工作环境相关推荐

  1. c调用python代码找不到模块_构建 Python C 扩展模块

    有好几种扩展 Python 的功能的方法.其中一种就是用 C 或 C++ 编写 Python 模块.通过这个过程可以提高性能,更好地访问 C 库函数和系统调用.在本教程中,我将带大家了解如何使用 Py ...

  2. python界面开发 web_使用 web 技术构建 python 的 GUI 界面

    一般来说,选择用于应用程序的 GUI 工具箱会是一个棘手的事情,Python 也不例外.对于 Python 来说,可以选择的工具箱种类繁多.就我所知道的而言,比较常用的就有 TkInter, wxPy ...

  3. python psutil下载安装_windows 利用pip 安装python psutil 模块

    本来写好的一篇文章,点错了,点"发表文章"了,郁闷中.... https://www.cndba.cn/sule/article/2218 那么就简单的记录下吧,懒得再详细的写一遍 ...

  4. python中如何创建包_如何在Python中创建命名空间包?

    TL:博士: 在Python3.3上,您不必做任何事情,只要不在名称空间包目录中放置任何__init__.py,它就可以工作了.在pre-3.3中,选择pkgutil.extend_path()解决方 ...

  5. python安装mysqldb模块,如何使用pip安装Python MySQLdb模块?

    How can I install the MySQLdb module for Python using pip? 解决方案 It's easy to do, but hard to remembe ...

  6. python统计词频 创建字典_如何利用Python进行文本词频统计

    问题描述 Python在自然语言处理这个方面,有其天然的优势:简单,快捷.所以我们经常会遇到利用Python从一篇文档中,统计文本词频的问题.以<三国演义>这部名著为例,文中哪些人物的出场 ...

  7. python pip-什么是pip?Python新手入门指南

    什么是 pip ?pip 是 Python 中的标准库管理器.它允许你安装和管理不属于 Python标准库 的其它软件包.本教程就是为 Python 新手介绍 pip. 通过本教程,你将学到: 1. ...

  8. Python实战技术 - Python虚拟隔离环境 和 Docker技术

    Python实战技术 - Python虚拟隔离环境 和 Docker技术 已经学过,只想查查手册?--试试直接跳转到命令: (1)使用venv创建相关命令 (2)使用virtualenv创建相关命令 ...

  9. cmd输入pip报错_使用Pip管理Python的包

    这是我的Python教程的第2篇文章 第1篇文章在这里:Python安装 0x01Pip介绍 Pip是Python的包管理程序,负责Python的包的查找,下载,安装,卸载工作;使用Pip可以轻松的管 ...

最新文章

  1. MPB:林科院袁志林组-​原生质体法制备根系腐生型共生菌(伞菌目)单核化菌丝...
  2. The transaction log for database 'tempdb' is full due to 'ACTIVE_TRANSACTION'
  3. 从Atlas到Microsoft ASP.NET AJAX(4) - Browser Compatibility
  4. java定时器的使用
  5. 驾驶证损毁、驾驶人信息变更的如何换证
  6. 内核怎么帮程序建立连接的
  7. 江苏计算机云服务,云呐|江苏企业机房环境动环监控服务商系统智能监测
  8. javaweb项目静态资源被拦截的解决方法
  9. atitit.资源释放机制--attilax总结
  10. 结构专业规范大全_建筑业最新规范大全!拿着手机看规范、查标准,超级方便...
  11. rs232接口_RS232串口通信:接口定义、标准接法详细说明,一看就懂了
  12. ajax实现JSONP跨域
  13. 中国抗生素产业运行状况与需求前景规模预测报告2022版
  14. matlab coder 安装,MATLAB Coder
  15. 中国IT排名百强公司 .
  16. 贷款计算公式——java实现
  17. Oracle---查询
  18. 国际群发短信平台适用于哪些行业?
  19. 魔趣吧致力于为中文站长提供助力
  20. 9.谷歌浏览器最小字体尺寸

热门文章

  1. scheme http https 区别 tls_HTTPS、HTTP、TLS/SSL工作及握手原理、PKI/CA密钥体系
  2. 重温这几个屌爆的Python技巧!
  3. Team Foundation Server 2010 安装、部署与配置(四):设置 .
  4. 演练:调试多线程应用程序
  5. Ubuntu16使用theano出错
  6. python语言的核心理念是_学习Python语言四大核心优势
  7. Pyotrch —— 优化器Optimizer(一)
  8. PCA和线性回归之间的关系如何?
  9. 吴恩达深度学习 —— 4.6 前向传播和反向传播
  10. 【例题+习题】【数值计算方法复习】【湘潭大学】(六)