复制 virtualenv,无需在同一台机器上再次下载所有包

问题描述 投票:0回答:3

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

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

谢谢

python virtualenv pip
3个回答
9
投票

将以下内容添加到

$HOME/.pip/pip.conf

[global]
download_cache = ~/.pip/cache

这告诉 pip 将下载内容缓存在

~/.pip/cache
中,这样下次就不需要再出去下载它们了。


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 与 ARM,以及如果您有绑定到 C 的库 系统上的库(如果这些 C 库位于某处) 不同(不同版本或不同文件系统 布局)。

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


0
投票

尝试对

site-packages
文件夹进行符号链接。

© www.soinside.com 2019 - 2024. All rights reserved.