使用轮子时,如何处理C扩展名?

时间:2018-06-26 17:35:35

标签: python pip

我有一个依赖于软件包B的软件包A。软件包B具有C扩展名[sic]。

当我使用A包时:

python setup.py install

它会经历安装过程,并在可能的情况下编译B的扩展名(并在输出中注明),否则将忽略它们。到目前为止,符合预期。

但是,如果我为A制作轮子,然后安装它:

python setup.py bdist_wheel
pip install $wheel_file

B仍然作为依赖安装,但是很快。并且在输出中指出B的setup.py正在执行时,它什么也没说。这使我怀疑扩展程序没有被构建或使用。我认为可能某个地方涉及到缓存,并尝试了pip的--no-cache-dir选项,但这似乎只能强制重新下载依赖项;它没有添加编译消息或延迟。

这到底是怎么回事?扩展何时构建,何时不扩展?车轮中包含什么,什么不包含?

(上下文:我并不特别在意这种情况下是否获得扩展。这种行为让我感到惊讶,并且我想了解幕后情况)

0 个答案:

没有答案