2013-04-05 60 views
7

我想創建一個python包mycode,使用pipsetup.py)安裝,它依賴於另一個包base。爲了incoporate我按照setup.py instructions這個包的依賴和創造的setup.pysetup功能,用於讀取條目:如何在setup.py中指定顯式python打包依賴關係?

'requires': ['base'] 

我已經創建了python setup.py sdist包裝後,我試圖安裝它通過pip install,其成功安裝mycode ,但從base沒有。看起來setup.py中的requires條目被忽略。

任何想法出了什麼問題?

回答

10

您需要指定install_requires而不是,請參閱New and changed setup keywords

requires字段太模糊和不精確,所以setuptools民間(所以easy_install,從中pip演進的)增加了更多的特定字段。另外,setup.py所需的依賴關係還有運行測試的setup_requirestest_requires字段。

+0

感謝,似乎工作!但這是否意味着我所鏈接的文檔不可用?這不是「官方」文件的一部分嗎? – Alex 2013-04-05 13:23:32

+0

'pip'遵循'setuptools'包裝的全局。 'setuptools'的'distribute'分支有[良好的文檔](http://pythonhosted.org/distribute/),然後是[Hitchhikers Guide to Packaging](https:// the-hitchhikers-guide-to -packaging.readthedocs.org/en/latest/)。 – 2013-04-05 13:25:56

+0

但是,是的,'distutils'文檔對'distutils'是正確的,但'distutils'已經被'setuptools'留下了。我認爲,在作品中有/ distutils2是爲了彌補這一缺陷,但目前這種努力已經停滯。 – 2013-04-05 13:27:49