小编典典

在setup.py或pip要求文件中,如何控制安装软件包依赖项的顺序?

python

我在install_requires =
[…]中有一个Python包,它的setup.py具有通过常规方式声明的依赖项。其中一个软件包scikits.timeseries有一个setup.py,期望已经安装了numpy,因此,我想以某种方式先安装numpy。对于这种情况,通常可以控制依赖项安装的顺序吗?怎么样?

当前,setup.py下拉依赖项的顺序(如arg install_requires中所列)实际上是随机的。另外,在setup.py
setup(…)中,我尝试使用arg:

extras_require={'scikits.timeseries': ['numpy']}

…没有成功,安装依赖项的顺序不受影响。

我也尝试设置pip需求文件,但那里的pip安装依赖项的顺序与需求文件的行顺序不匹配,所以没有运气。

另一种可能性是在setup.py顶部附近进行系统调用,以便在setup(…)调用之前安装numpy,但我希望有更好的方法。在此先感谢您的帮助。


阅读 215

收藏
2021-01-20

共1个答案

小编典典

如果scikits.timeseries需要numpy,则应将其声明为依赖项。如果这样做的话,那么pip将为您处理事情(我很确定setuptools也可以,但是我已经很长时间没有使用它了)。如果您控制scikits.timeseries,则应该修复它的依赖项声明。

2021-01-20