5

我正在编写一个setup.py脚本并想指定对 MySQL 包的依赖:

requires=['requests', 'mock', 'GitPython', 'MySQL-python']

但是MySQL-python对于设置工具来说看起来是非法的,因为它认为-应该有一个版本并且它会抛出这个错误:

ValueError:预期的带括号的列表:'-python'

我可以在这里做什么?

环境:Python 2.7.3;精确 32

4

2 回答 2

1

distutils 文档

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

考虑到这一点,您应该能够检查 MySQL-python 的_mysql模块:

requires=['requests', 'mock', 'GitPython', '_mysql']
于 2013-03-11T18:11:30.930 回答
0

在这一点上,您不应该遵循 distutils 文档。 requires来自为分发定义元数据的 PEP,但它实际上不适用于任何工具,包括 distutils。现在,您需要选择一个不在标准库中的打包工具,并使用它的约定来定义依赖项和构建时依赖项。pip 有需求文件;分发有 requires_dist 和 setup_requires;buildout 还有其他东西,等等。

于 2013-03-12T15:54:57.987 回答