17

“Writing the Setupscript ( http://docs.python.org/2/distutils/setupscript.html ) 的 python 文档提到可以在部分指定依赖项

> 2.4。发行版和包之间的关系

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

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

要指定需要任何版本的模块或包,字符串应完全由模块或包名称组成。示例包括“mymodule”和“xml.parsers.expat”。

[...]

鉴于这个没有示例的相当稀疏的信息,我只想确保我做对了。requires另外,我在 API 描述http://docs.python.org/2/distutils/apiref.html#distutils.core.setup中找不到这个参数

是这样完成的吗,例如,

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

是否有意义?

4

1 回答 1

19

忽略distutils。如果你想创建一个包来指定一个工具的依赖项,比如pip出去为你寻找,你需要将你setup.py的基础改为 off setuptools

setuptools依赖项列在 中install_requires,其中包含一个列表:

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

这应该是他们自己的分布。os并且sys是 Python 中包含的模块,不应列出

于 2013-07-18T15:17:16.850 回答