这个废弃警告是什么意思,如何修复它?

17

当我使用pip 21.1本地安装Python包(pip install . )时,会收到一个弃用警告:

 DEPRECATION: A future pip version will change local packages to be built in-place without first copying to a temporary directory. We recommend you use --use-feature=in-tree-build to test your packages with this new behavior before it becomes the default.
   pip 21.3 will remove support for this functionality. You can find discussion regarding this at https://github.com/pypa/pip/issues/7555.

我不明白这是什么意思。 另外,我该怎么解决它?

2个回答

9
简而言之,我的理解是: pip在包之间建立依赖关系树。
目前,pip需要一个临时文件夹,这会导致有时出现问题,特别是涉及相对路径的情况,请参见此处
为了解决这个问题和 其他问题。他们将改变pip install的行为。因此,您可以通过使用@Jason Harrison描述的--use-feature=in-tree-build来测试是否会对您产生影响。
如警告中所述,有一个github讨论,在此处更详细地解释了这一点。

所以我不需要采取任何行动。这只是一个内部更改,用户看不到吗? - Alex
1
如果有其他信息,请告诉我们,但据我理解,是的,你是正确的。如果您希望非常确保,例如生产环境,请使用--use-feature=in-tree-build来构建您的软件包。 - Andreas
你可以在~/.configs/pip/pip.conf文件[install]部分中添加use-feature = in-tree-build。不确定是否会有任何不良后果,但对我有效。 - mforbes

8

虽然@andreas的答案引用了讨论并回答了问题,但使用该标志的方法是在目标后面包含它:

pip install . --use-feature=in-tree-build

这与使用 --editable 标记相同:安装的源使用包的源而不进行任何副本。当您的代码库工作副本中存在大量额外的调试或二进制文件需要复制到临时位置时,这就变得特别有用了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接