6

我有几个需要类似依赖项的项目,我不想让 pip 每次都从网络上删除依赖项。例如,我正在使用 norel-django 包,如果我在系统范围内安装它,它将与我的标准 django(rdbms 版本)冲突。

有没有办法让我使用 pip “重用”下载的依赖项?我是否需要对源 tar.bz2 文件进行 DL 并制作类似于 pip 存档或其他内容的文件夹结构?任何援助将不胜感激。

谢谢

4

2 回答 2

8

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

[global]
download_cache = ~/.pip/cache

这告诉 pip 缓存下载,~/.pip/cache所以下次它不需要出去再次下载它们。

于 2012-11-09T15:51:39.063 回答
0

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

无论如何,它看起来比复制和粘贴虚拟环境目录更复杂:

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

此外,virtualenv 似乎有一个标志,可以帮助你移动你的 virtualenv。

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

$ virtualenv --relocatable ENV来自 virtualenv 文档:

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

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

此外,这不会使您的包跨平台。您可以移动目录,但它只能在其他类似的计算机上使用。一些可能导致不兼容的已知环境差异:不同版本的 Python,当一个平台使用 UCS2 作为其内部 unicode 表示而另一个使用 UCS4(编译时选项)时,明显的平台变化,如 Windows 与 Linux,或 Intel 与 Linux。 ARM,并且如果您有绑定到系统上 C 库的库,如果这些 C 库位于不同的位置(不同的版本或不同的文件系统布局)。

如果您使用此标志来创建环境,当前将隐含 --system-site-packages 选项。

于 2012-11-09T15:47:53.167 回答