我已将pip,distribute,virtualenv和virtualenvwrapper安装到我的Python 2.7网站包(a framework Python install on 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中。因此,我想知道:
我尝试使用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
add2virtualenv
的工作方式吗?答案 0 :(得分:11)
除非您在嵌入式系统上进行开发,否则我发现以这种方式追逐磁盘空间总是适得其反。我需要很长时间才能实现这一目标,因为当一个非常大的硬盘驱动器只有几兆字节时我长大了,并且用K来衡量RAM。但是今天,除非你受到非常特殊和不寻常的限制,否则让你的项目正交(你可以在项目之外的任何地方删除你的系统上的任何目录,并让它的Python包仍在那里)似乎总是远远超过磁盘空间的好处,如果你正在忙着开发,你会永远 - 根据我的经验 - 无论如何都要注意。
所以我想这是我根据自己的经验提供的教训:你永远不会注意到你丢失的磁盘空间,但是如果你想要清理一个目录,你会注意到它在磁盘上的一个地方打破正在开发的项目。