如何在为python包创建setup.py文件时指定依赖项

时间:2013-07-18 15:14:14

标签: python package setup.py

“编写Setupscript(http://docs.python.org/2/distutils/setupscript.html)的python doc”提到可以在

部分指定依赖项
  

> 2.4。分布和包之间的关系

     

[...]可以使用关键字参数指定这些关系   distutils.core.setup()函数。

     

可以通过指定其他Python模块和包的依赖关系   为require()提供requires关键字参数。值必须是   字符串列表。每个字符串指定一个必需的包,   以及可选的版本就足够了。

     

要指定需要任何版本的模块或包,请执行以下操作:   string应完全由模块或包名组成。例子   包括'mymodule'和'xml.parsers.expat'。

     

[...]

鉴于这个相当稀疏的信息没有示例,我只想确保我做得对。另外,我在API说明http://docs.python.org/2/distutils/apiref.html#distutils.core.setup

中找不到此requires参数

这样做是这样的,例如,

setup(name='MyStuff',
      version='1.0',
      requires='os, sys, progressbar',
      [...]

我希望有人可以给我一点洞察力!谢谢!

编辑:

要解决distutils.core,setuptools争议,可以简单地做

try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup

有意义吗?

1 个答案:

答案 0 :(得分:18)

忽略distutils。如果您要创建一个程序包来指定pip等工具的依赖关系,那么您需要将setup.py关闭setuptools

install_requires中列出了

setuptools个依赖项,其中列出了一个列表:

setup(name='MyStuff',
      version='1.0',
      install_requires=['progressbar'],
      # ...
)

应该是他们自己的发行版。 ossys是Python附带的模块,不应列出