我有几个需要类似依赖项的项目,我不想让 pip 每次都从网络上删除依赖项。例如,我正在使用 norel-django 包,如果我在系统范围内安装它,它将与我的标准 django(rdbms 版本)冲突。
有没有办法让我使用 pip “重用”下载的依赖项?我是否需要对源 tar.bz2 文件进行 DL 并制作类似于 pip 存档或其他内容的文件夹结构?任何援助将不胜感激。
谢谢
我有几个需要类似依赖项的项目,我不想让 pip 每次都从网络上删除依赖项。例如,我正在使用 norel-django 包,如果我在系统范围内安装它,它将与我的标准 django(rdbms 版本)冲突。
有没有办法让我使用 pip “重用”下载的依赖项?我是否需要对源 tar.bz2 文件进行 DL 并制作类似于 pip 存档或其他内容的文件夹结构?任何援助将不胜感激。
谢谢
将以下内容添加到$HOME/.pip/pip.conf
:
[global]
download_cache = ~/.pip/cache
这告诉 pip 缓存下载,~/.pip/cache
所以下次它不需要出去再次下载它们。
看起来 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 选项。