gpt4 book ai didi

python - pip 安装项目而不复制整个项目文件夹

转载 作者:行者123 更新时间:2023-12-04 14:15:38 25 4
gpt4 key购买 nike

当我在我正在处理的项目上运行 pip install . 时,在 pip 开始安装过程之前,整个项目文件夹被复制到一个临时文件夹。对我来说,这是个问题,因为我的项目文件夹包含数 GB 的数据,这些数据无法再次放入我的磁盘。因此,pip install 会填满我的磁盘,然后在可用空间不足时崩溃。

当我运行 python setup.py install 时,这不是问题,因为我清楚地定义了哪些文件夹应该是我的模块的一部分,当然所有这些数据都不包括在内。此外,所有这些数据都被排除在 .gitignore.dockerignore 和诸如此类的东西中。然而,pip 并不关心这个,因为 documentation states :

During regular installation, pip will copy the entire project directory to a temporary location and install from there. The exception is that pip will exclude .tox and .nox directories present in the top level of the project from being copied.

如何防止 pip 复制我的整个项目文件夹并使其尊重我精心编写的 setup.py 文件的内容?


背景:我曾经对 setup.py install 很满意,但最近我想试试 git pre-commit ,它在内部调用 pip install . 来构建项目。到目前为止,我还没有使用 pip 作为我项目的构建工具,但我认为这可能是一个好机会,至少可以让我的项目与 pip 兼容,但到目前为止无济于事......

最佳答案

这似乎是 pip 中的一个长期存在的问题,至少从 2014 年就开始讨论(参见 issue #2195)。

有一些建议可以解决这个问题,比如添加对 pipignore 的支持。像 gitignore 一样工作的文件,但到目前为止唯一实现的是将硬编码规则添加到 ignore .tox and .nox folders ,这确实解决了这些工具的具体问题,但不是一般问题。

解决方法是创建一个 source distribution (sdist) 然后 pip 安装那个源码包:

python setup.py sdist
pip install dist/<name>.tar.gz

当然,这不会解决第三方工具本身调用 pip install . 的问题。已经讨论过将此设置为 pip 的默认行为,但出于我无法理解的原因,在过去 6 年中并未触及此问题,因此我不希望在不久的将来解决此问题。

关于python - pip 安装项目而不复制整个项目文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60576075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com