LOADING

Follow me

pip 与 virtualenv 的使用
十一月 22, 2013|Whistler

pip 与 virtualenv 的使用


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

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

  5. 当需要将虚拟环境env1迁移或复制到另一个虚拟环境(可能不在同一台机器上)env2时,首先仍然需要在目的机器上安装pip和virtualenv,然后采用以下方法之一安装其他的package:
  6. 1.直接将env1里的文件全部复制到env2里,然后修改涉及路径的文件。此种方法可能正常使用,但显然不是好办法。
  7. 2.进入原虚拟环境env1,然后执行pip freeze > requirements.txt将包依赖信息保存在requirements.txt文件中。然后进入目的虚拟环境env2,执行pip install -r requirements.txt,pip就会自动从网上下载并安装所有包。
  8. 3.pip默认会从pypi服务器(http://pypi.python.org/simple)下载包的安装文件,如果目的机器无法连外网,则可以采用以下办法:
    1. 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
    2. 3.2如果你实在不想搭建pypi服务器,也有办法。首先将所有包的安装文件下载下来,可以手动下载,也可以使用pip,如pip install -d /path/to/save/ -r requirements.txt,然后自己修改requirements.txt文件,将每一行改成对应的包的安装文件的路径。最后在目的虚拟环境中使用pip安装,如pip install -r requirements.txt即可。
    3. 3.3还有一种途径,就是pip提供的bundle选项。首先执行pip bundle MyEnv.pybundle -r requirements.txt,将生成一个MyEnv.pybundle文件,该文件夹包含所有包的安装文件(注意必须后缀名必须是.pybundle),默认是重新从pypi服务器下载安装文件的,如果愿意,也可以利用3.1中的方法,指定本地的pypi服务器。然后在目的虚拟环境中执行pip
      install MyEnv.pybundle
      即可。
  9. 4.pip install还有许多有用的选项,如–download-cache=DIR可以指定下载安装文件时缓存至DIR路径,下次需要时则直接读取缓存文件。具体选项可以执行pip help install得到详细信息。
  10. 5.另外,还可以将自己的包上传至pypi服务器,分享给所有人。具体可参考http://guide.python-distribute.org/creation.htmlhttp://matrix.42qu.com/10734668
  11. 本文出自夜惊心的博客,转载请保留出处
  12. virtualenv
  13. 以下是OS网站的,具体转载不太清楚了,抱歉
  14. virtualenv用于创建独立的Python环境,多个Python相互独立,互不影响,它能够:
  15. 1. 在没有权限的情况下安装新套件
  16. 2. 不同应用可以使用不同的套件版本
  17. 3. 套件升级不影响其他应用
  18. 安装
  19. sudo apt-get install python-virtualenv
  20. 使用方法
  21. virtualenv [虚拟环境名称] 
  22. 如,创建**ENV**的虚拟环境
  23. virtualenv ENV
  24. 默认情况下,虚拟环境会依赖系统环境中的site packages,就是说系统中已经安装好的第三方package也会安装在虚拟环境中,如果不想依赖这些package,那么可以加上参数 --no-site-packages建立虚拟环境
  25. virtualenv –no-site-packages [虚拟环境名称]
  26. 启动虚拟环境
  27. cd ENV
  28. source ./bin/activate
  29. 注意此时命令行会多一个(ENV),ENV为虚拟环境名称,接下来所有模块都只会安装到该目录中去。
  30. 退出虚拟环境
  31. deactivate
  32. 在虚拟环境安装Python套件
  33. Virtualenv 附带有pip安装工具,因此需要安装的套件可以直接运行:
  34. pip install [套件名称]
  35. 如果没有启动虚拟环境,系统也安装了pip工具,那么套件将被安装在系统环境中,为了避免发生此事,可以在~/.bashrc文件中加上:
  36. export PIP_REQUIRE_VIRTUALENV=true
  37. 或者让在执行pip的时候让系统自动开启虚拟环境:
  38. export PIP_RESPECT_VIRTUALENV=true
  39. Virtualenvwrapper
  40. Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境,它可以做:
  41. 1. 将所有虚拟环境整合在一个目录下
  42. 2. 管理(新增,删除,复制)虚拟环境
  43. 3. 切换虚拟环境
  44. 4. …
  45. 安装
  46. sudo easy_install virtualenvwrapper  
  47. 此时还不能使用virtualenvwrapper,默认virtualenvwrapper安装在/usr/local/bin下面,实际上你需要运行virtualenvwrapper.sh文件才行,先别急,打开这个文件看看,里面有安装步骤,我们照着操作把环境设置好。

  48. 创建目录用来存放虚拟环境

    mkdir $HOME/.virtualenvs
    


  49. 在~/.bashrc中添加行: export WORKON_HOME=$HOME/.virtualenvs


  50. 在~/.bashrc中添加行:source /usr/local/bin/virtualenvwrapper.sh


  51. 运行: source ~/.bashrc

  52. 此时virtualenvwrapper就可以使用了。
  53. 列出虚拟环境列表
  54. workon
  55. 也可以使用
  56. lsvirtualenv
  57. 新建虚拟环境
  58. mkvirtualenv [虚拟环境名称]
  59. 启动/切换虚拟环境
  60. workon [虚拟环境名称]
  61. 删除虚拟环境
  62. rmvirtualenv [虚拟环境名称]
  63. 离开虚拟环境
  64. deactivate
  65. 参考:
  66. http://www.virtualenv.org/en/latest/
  67. http://stackoverflow.com/questions/11372221/virtualenvwrapper-not-found
  68. http://www.openfoundry.org/tw/tech-column/8516-pythons-virtual-environment-and-multi-version-programming-tools-virtualenv-and-pythonbrew
  69. http://virtualenvwrapper.readthedocs.org/en/latest/index.html



no comments
Share

发表评论