复制virtualenv而不在同一台机器上再次下载所有软件包

时间:2012-11-09 15:45:25

标签: python virtualenv pip

我有几个需要类似依赖项的项目,我不希望每次都有pip出去和DL来自web的依赖项。例如,我使用的是norel-django软件包,如果我在系统范围内安装它会与我的标准django(rdbms版本)冲突。

有没有办法让我使用pip“重用”下载的依赖项?我是否需要DL源tar.bz2文件并创建类似于pip存档的文件夹结构?任何帮助将不胜感激。

由于

2 个答案:

答案 0 :(得分:7)

将以下内容添加到$HOME/.pip/pip.conf

[global]
download_cache = ~/.pip/cache

这告诉pip在~/.pip/cache中缓存下载,因此下次不需要再下载它们。

答案 1 :(得分:0)

看来virtualenv有一个virtualenv-clone命令,或者virtualenvwrapper可能吗?

无论如何,只需复制并粘贴虚拟环境目录,它就会更加复杂:

https://github.com/edwardgeorge/virtualenv-clone

此外,看来virtualenv有一个标志,有助于移动你的virtualenv。

http://www.virtualenv.org/en/latest/#making-environments-relocatable

来自virtualenv doc的

$ virtualenv --relocatable ENV

  

这将使一些由setuptools创建或分发的文件   使用相对路径,并将更改要使用的所有脚本   activate_this.py而不是使用Python的位置   口译员选择环境。

     

注意:在将任何软件包安装到软件包之后,必须运行此软件   环境。如果您使环境可重定位,则安装一个   新包,你必须再次运行virtualenv --relocatable。

     

此外,这不会使您的软件包跨平台。你可以搬家   目录周围,但它只能用于其他类似的   电脑。一些已知的环境差异可能导致   不兼容性:当一个平台时,不同版本的Python   使用UCS2作为其内部unicode表示和另一种用途   UCS4(一个编译时选项),像Windows一样明显的平台变化   与Linux,或英特尔与ARM,如果你有绑定到C的库   系统上的库,如果那些C库位于某个地方   不同(不同的版本,或不同的文件系统   布局)。

     

如果你使用这个标志创建一个环境,目前,   将隐含--system-site-packages选项。