2013-04-05 61 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