【问题标题】:setup.py: expected parenthesized list when required package name contains a dashsetup.py:当所需的包名称包含破折号时,预期的带括号的列表
【发布时间】:2013-04-14 04:08:36
【问题描述】:

我正在编写一个可重用的 Django 应用程序,如下所述: https://django.readthedocs.org/en/1.5.x/intro/reusable-apps.html

当我在 setup.py 中指定包名称中包含破折号的要求时,setup.py 将不会运行。例如,如果我的 setup.py 包含这一行:

requires=[ 'djangotinymce', 'MtFileUtil', 'Django', 'PyYAML', ],

然后它可以正常工作。

python ./setup.py sdist
running sdist
...
Creating tar archive

如果我把这条线改成这样:

requires=[ 'django-tinymce', 'MtFileUtil', 'Django', 'PyYAML', ],

我们得到一个奇怪的错误

Traceback (most recent call last):
  File "./setup.py", line 32, in <module>
    'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
  File "/usr/lib/python2.7/distutils/core.py", line 112, in setup
    _setup_distribution = dist = klass(attrs)
  File "/home/travis/venv/deleteme/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/dist.py", line 225, in __init__
    _Distribution.__init__(self,attrs)
  File "/usr/lib/python2.7/distutils/dist.py", line 259, in __init__
    getattr(self.metadata, "set_" + key)(val)
  File "/usr/lib/python2.7/distutils/dist.py", line 1220, in set_requires
    distutils.versionpredicate.VersionPredicate(v)
  File "/usr/lib/python2.7/distutils/versionpredicate.py", line 113, in __init__
    raise ValueError("expected parenthesized list: %r" % paren)
ValueError: expected parenthesized list: '-tinymce'

我不确定该怎么做。我想要求 django-tinymce 但我不知道该怎么做。

【问题讨论】:

    标签: django setuptools distribute


    【解决方案1】:

    require 参数来自 distutils 并且需要 python 包名称(这里有一些 documentation)。由于您使用的是setuptools,因此您应该改用install_requires 参数,它确实支持PyPI 包名称:

    install_requires=['djangotinymce', 'MtFileUtil', 'Django', 'PyYAML'],
    

    Python 打包用户指南中有关Specifying Dependencies 的更多信息。

    【讨论】:

    • 只是为了澄清上述评论,您需要删除 - 的。对于 python,这些是算术运算符。即“django-tinymce”->“djangotinymce”。
    • 它们可以是下划线而不是连字符。
    猜你喜欢
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    相关资源
    最近更新 更多