【问题标题】:setup.py requires MySQL-pythonsetup.py 需要 MySQL-python
【发布时间】:2013-03-11 17:53:56
【问题描述】:

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

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

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

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

我可以在这里做什么?

环境:Python 2.7.3;精确 32

【问题讨论】:

    标签: python setup.py


    【解决方案1】:

    来自distutils documentation

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

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

    requires=['requests', 'mock', 'GitPython', '_mysql']
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 你建议使用pip install -r requirements.txt,对吧?但是后来我不能给用户提供一个好用的包,用户不喜欢思考,只想跑pip install myapp。或者您有其他建议吗?
      猜你喜欢
      • 2016-08-08
      • 2021-05-13
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 2019-01-01
      • 1970-01-01
      • 2017-10-10
      • 2011-04-02
      相关资源
      最近更新 更多