Python 是否使virtualenv共享现有的站点包?
我的布局如下: 我在~/projects下有各种不同的python项目,每个项目的结构如下:Python 是否使virtualenv共享现有的站点包?,python,virtualenv,Python,Virtualenv,我的布局如下: 我在~/projects下有各种不同的python项目,每个项目的结构如下: ~/projects/$project_name/env #This is the virtualenv ~/projects/$project_name/scripts #This is where the code actually lives ~/projects/$project_name/scripts/require
~/projects/$project_name/env #This is the virtualenv
~/projects/$project_name/scripts #This is where the code actually lives
~/projects/$project_name/scripts/requirements.txt #This helps keep track of this project's dependencies
现在,此设置非常有效,因为它可以执行以下操作:
pip install-r requirements.txt
virtualenv——系统站点包
。这使得virtualenv中的系统级软件包可用,但:
virtualenv--extra search dir=/path/to/dist
只对pip、AFAICT有效,所以对我不好。放弃评论,也许我知道答案。看起来好像Anaconda的软件包管理系统确实使用了符号链接。因此,这基本上是一个虚拟电视,但有你想要的功能。请看这里:
这就是说,使用Conda需要大量的初始硬盘成本,所以请多调查一下,确定它是否适合您 我相信这个想法与虚拟环境的目的有些矛盾。我个人会保持现状。很抱歉,这不是对您问题的直接回答。@Maarten是的,是的。尽管我倾向于同意存储问题并非无关紧要。我空间不足的部分原因是这个。我认为这是个坏主意的部分原因是Virualenv不仅仅是软件包,它们是软件包的版本。如果您的所有模块中都有版本为1.5的x软件包,而其中一个模块需要1.6,会发生什么情况?从理论上讲,依赖项的重叠应该比看起来少很多。@Neil我同意virtualenv希望跟踪各个软件包版本(这样做很有用!)。我不喜欢的是,如果我有3个相同版本的项目,我就有3个代码副本。作为一名黑客,我认为您可以通过将所有pandas版本放在一个公共repo中,并在
env/lib/python3.5/site packages
中“适当”设置符号链接来解决这个问题。“适当”的意思不是微不足道的,但看起来是可行的。