通常你會希望所有的包都聲明它們的依賴關係,但是有時候這是你無法控制的,對於大型的或者複雜的包來說,「fork它」並不容易。使用python需求文件可以控制安裝軟件包依賴關係的順序嗎?
例如,SciPi需要NumPy,但沒有指定它。因此,對於不受控制的軟件包,是否有辦法告訴setup.py或pip以特定順序安裝?
通常你會希望所有的包都聲明它們的依賴關係,但是有時候這是你無法控制的,對於大型的或者複雜的包來說,「fork它」並不容易。使用python需求文件可以控制安裝軟件包依賴關係的順序嗎?
例如,SciPi需要NumPy,但沒有指定它。因此,對於不受控制的軟件包,是否有辦法告訴setup.py或pip以特定順序安裝?
2015/4/13 UPDATE:與@Garrrett commented一樣,安裝順序行爲在pip v6.1.0中發生了變化。從pip v7.0.0.dev0 docs摘自:
隨着V6.1.0中,PIP他們的家屬之前安裝的依賴關係,即在「拓撲排序」。這是pip目前與訂單相關的唯一承諾。雖然可能巧合的是,pip將按照安裝參數的順序或按需求文件中項目的順序安裝,但這不是承諾。
最初的回答(過時):
使用要求與pip
文件。由於0.8.3版本pip
按照它們在需求文件中列出的順序安裝軟件包。
相關:[非字母安裝需求](https://github.com/pypa/pip/issues/24)pip的github回購中的錯誤。 – 2013-07-18 21:55:15
這個答案不正確。 '從v6.1.0開始,pip在依賴項之前安裝依賴項,即按照「拓撲順序」。這是pip目前與訂單相關的唯一承諾。雖然可能巧合的是,pip將按照安裝參數的順序或按需求文件中項目的順序安裝,但這不是一個承諾。「([ref](https://github.com/) pypa/pip/blob/develop/docs/reference/pip_install.rst#installation-order)) – Garrett 2015-04-08 22:32:16
這是一項新功能,@Garrett,感謝您的評論。如果您用新信息回答OP的問題,OP將會很酷,OP將您的答案標記爲正確。 – 2015-04-13 15:27:41
答案可能有點令人失望:http://stackoverflow.com/questions/5394356/how-to-specify-install-order-for-python-pip – 2012-07-19 21:36:52
SciPi是否需要NumPy或SciPi安裝過程需要NuymPy?如果第一個可以以任何順序安全安裝。 – 2012-07-20 05:59:09