pip可以很方便的安装、卸载和管理Python的包。
virtualenv则可以建立多个独立的虚拟环境,各个环境中拥有自己的python解释器和各自的package包,互不影响。
pip和virtualenv可以很好的协同工作,同时使用这两个工具非常方便。

一般先安装pip,安装好后,pip install virtualenv就可以自动从网上下载并安装virtualenv了。然后virtualenv env1就可以创建一个名为env1的虚拟环境了,进入这个虚拟环境后,再使用pip install安装其它的package就只会安装到这个虚拟环境里,不会影响其它虚拟环境或系统环境。

当需要将虚拟环境env1迁移或复制到另一个虚拟环境(可能不在同一台机器上)env2时,首先仍然需要在目的机器上安装pip和virtualenv,然后采用以下方法之一安装其他的package:

  • 1.直接将env1里的文件全部复制到env2里,然后修改涉及路径的文件。此种方法可能正常使用,但显然不是好办法。
  • 2.进入原虚拟环境env1,然后执行pip freeze > requirements.txt将包依赖信息保存在requirements.txt文件中。然后进入目的虚拟环境env2,执行pip install -r requirements.txt,pip就会自动从网上下载并安装所有包。
  • 3.pip默认会从pypi服务器(http://pypi.python.org/simple)下载包的安装文件,如果目的机器无法连外网,则可以采用以下办法:
    • 3.1搭建自己的pypi服务器。专业的,可以使用第三方的软件包来搭建一个完整的pypi镜像服务器,参考http://www.worldhello.net/2011/03/14/2357.html。更快速的方法只需要一条命令python -m SimpleHTTPServer即可完成搭建服务器,具体的目录结构可参考原pypi服务器,简而言之,就是把安装文件打包放入目录即可。搭建好服务器之后,在目的虚拟环境中,就可以使用pip来安装了,命令如:pip install -i http://127.0.0.1:8000/ -r requirements.txt
    • 3.2如果你实在不想搭建pypi服务器,也有办法。首先将所有包的安装文件下载下来,可以手动下载,也可以使用pip,如pip install -d /path/to/save/ -r requirements.txt,然后自己修改requirements.txt文件,将每一行改成对应的包的安装文件的路径。最后在目的虚拟环境中使用pip安装,如pip install -r requirements.txt即可。
    • 3.3还有一种途径,就是pip提供的bundle选项。首先执行pip bundle MyEnv.pybundle -r requirements.txt,将生成一个MyEnv.pybundle文件,该文件夹包含所有包的安装文件(注意必须后缀名必须是.pybundle),默认是重新从pypi服务器下载安装文件的,如果愿意,也可以利用3.1中的方法,指定本地的pypi服务器。然后在目的虚拟环境中执行pip install MyEnv.pybundle即可。
  • 4.pip install还有许多有用的选项,如--download-cache=DIR可以指定下载安装文件时缓存至DIR路径,下次需要时则直接读取缓存文件。具体选项可以执行pip help install得到详细信息。
  • 5.另外,还可以将自己的包上传至pypi服务器,分享给所有人。具体可参考http://guide.python-distribute.org/creation.htmlhttp://matrix.42qu.com/10734668

最新文章

  1. InnoDB事务隔离级别
  2. python--基础学习(一)开发环境搭建,体验HelloWorld
  3. Android学习笔记(十五)——实战:强制下线
  4. C# Xml文件操作,解释见注释
  5. 1314: ZZY的困惑
  6. 安装包安装服务,点修复出现的错误”Error 1001:指定的服务已存在“ 解决办法
  7. Things App Engine Doesn't Do...Yet
  8. PHP课程十大 PHP图像处理功能和实现的验证码
  9. LeetCode之“动态规划”:Interleaving String
  10. 我对MVC的理解
  11. 【blog】SpringBoot普通类中如何获取其他bean例如Service、Dao
  12. adobe
  13. [转]Windows 下 Nginx+IIS 使用
  14. ionic3中创建pipe管道
  15. golang学习笔记 ---dup
  16. 20155237 2016-2017-2 《Java程序设计》第3周学习总结
  17. 在window 8 或windows2012 上用命令行安装framework3.5 方法
  18. Tomcat Connector三种执行模式(BIO, NIO, APR)的比較和优化
  19. 20155226 2016-2017-2 《Java程序设计》第2周学习总结
  20. Struts2框架学习第二章——Struts2下的HelloWorld

热门文章

  1. 项目积累——Strus、Hibernate
  2. silverlight,动态数据集合中,移除动态集合自身的内容
  3. OC基础(4)
  4. xutils 框架
  5. 凸包(Convex Hull)构造算法——Graham扫描法
  6. MySQL 密码修改
  7. Flash图表控件FusionCharts如何自定义图表的工具提示
  8. 架构设计--逻辑层 vs 物理层
  9. Crystal Report 处理当前系统时间
  10. linux使用flock文件锁解决crontab冲突问题