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

lim*_*ist 11 python installation dependencies packages setup.py

我有一个Python包,其setup.py具有通过常规方式声明的依赖关系,在install_requires = [...]中.其中一个软件包scikits.timeseries有一个setup.py,预计已经安装了numpy,因此,我想先用一些方法安装numpy.对于这种情况,一般情况下,可以控制依赖安装的顺序吗?怎么样?

目前,setup.py拉下依赖关系的顺序(如arg install_requires中所列)似乎几乎是随机的.另外,在setup.py设置(...)中我尝试使用arg:

extras_require={'scikits.timeseries': ['numpy']}
Run Code Online (Sandbox Code Playgroud)

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

我也试过设置一个pip需求文件,但是,pip安装依赖项的顺序与需求文件的行顺序不匹配,所以没有运气.

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

Han*_*Gay 5

如果scikits.timeseries需要numpy,那么它应该将其声明为依赖项.如果确实如此,那么pip就会为你处理一些事情(我也非常肯定setuptools,但是我很久没有使用它了).如果你控制scikits.timeseries,那么你应该修复它的依赖声明.