我在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,但我希望有更好的方法。在此先感谢您的帮助。
如果scikits.timeseries需要numpy,则应将其声明为依赖项。如果这样做的话,那么pip将为您处理事情(我很确定setuptools也可以,但是我已经很长时间没有使用它了)。如果您控制scikits.timeseries,则应该修复它的依赖项声明。
scikits.timeseries
numpy
pip
setuptools