当前的Python工作流程

我有 pip, 分发, Virtualenv, , 和 Virtualenvwrapper 安装到我的Python 2.7站点包中(a 框架Python在Mac OS X上安装)。在我的 ~/.bash_profile 我有线条

export PIP_DOWNLOAD_CACHE=$HOME/.pip_download_cache

这给出了如下工作流程:

$ mkvirtualenv pip-test
$ pip install nose        # downloaded and installed from PyPi
$ pip install mock        # downloaded and installed from PyPi
$ mkvirtualenv pip-test2
$ pip install nose        # installed from pip's download cache
$ pip install mock        # installed from pip's download cache

问题

由于我没有下载以前已安装在另一个Virtualenv中的软件包,因此此工作流程节省了时间和带宽。但是,它不能保存磁盘空间,因为每个软件包将安装到每个Virtualenv中。因此,我想知道:

  • 问题#1 是否有修改此工作流程,可以通过拥有多个Virtualenvs参考一个Python软件包来节省磁盘空间 不是 安装在我的Python 2.7站点包装中?

我尝试使用 add2virtualenv 这是VirtualenvWrapper的一部分。虽然这“将指定的目录添加到当前活跃的Virtualenv的Python路径中”,但并未添加任何可执行文件 virtualenv/bin 目录。因此,以下将失败:

$ mkvirtualenv pip-test3
$ add2virtualenv ~/.virtualenvs/pip-test/lib/python2.7/site-packages/nose/
$ nosetests   # Fails since missing ~/.virtualenvs/pip-test3/bin/nosetests
  • 问题2 我错过了关于方式的东西吗 add2virtualenv 作品?
  • 问题1改编 是否有比Add2virtualenv更好的方法,该方法允许多个Virtualenvs引用一个Python软件包 不是 安装在我的Python 2.7站点包装中?
  • 问题#3 如果有一种方法可以将共享的Python软件包安装到多个Virtualenvs中,那么与将Python软件包分别安装到每个Virtualenv中相比,是否存在性能惩罚?
  • 问题#4 我应该放弃保存磁盘空间并坚持当前的工作流程吗?
有帮助吗?

解决方案

除非您在嵌入式系统上进行开发,否则我发现以这种方式追逐磁盘空间总是适得其反。我花了很长时间才能实现这一意识,因为我长大了,当时非常大的硬盘驱动器的尺寸是几兆字节,并且在K中测量了RAM。让您的项目是正交的(您可以在项目之外的任何地方删除系统上的任何目录,并且仍然有其python套件)似乎总是远远超过磁盘空间的好处,如果您忙于开发,那么从来没有 - 根据我的经验 - 甚至注意到。

所以我想这是我根据自己的经验提供的课程:您永远不会注意到丢失的磁盘空间,但是您 将要 如果试图在磁盘上的一个位置清理目录,请注意它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top