我正在尝试使用PEP 426中指定的and来实现特殊的:test:
附加功能。pip
setuptools
我创建了以下内容setup.py
:
#!/usr/bin/env python3
from setuptools import setup
setup(
name='spam',
version='0.0.0',
tests_require=['requests'])
跑步./setup.py bdist_wheel
给了我一个轮子,上面有以下内容metadata.json
:
{
"name": "spam",
"test_requires": [
{
"requires": [
"requests"
]
}
],
"extensions": {
"python.details": {
"document_names": {
"description": "DESCRIPTION.rst"
}
}
},
"summary": "UNKNOWN",
"generator": "bdist_wheel (0.24.0)",
"version": "0.0.0",
"metadata_version": "2.0"
}
我希望能够test_requires
通过指定额外的:test:
. 但是,这让我得到以下输出:
$ pip install spam-0.0.0-cp34-cp34m-linux_x86_64.whl\[:test:\]
Exception:
Traceback (most recent call last):
File "/tmp/5221/lib/python3.4/site-packages/pip/basecommand.py", line 232, in main
status = self.run(options, args)
File "/tmp/5221/lib/python3.4/site-packages/pip/commands/install.py", line 305, in run
name, None, isolated=options.isolated_mode,
File "/tmp/5221/lib/python3.4/site-packages/pip/req/req_install.py", line 179, in from_line
isolated=isolated)
File "/tmp/5221/lib/python3.4/site-packages/pip/req/req_install.py", line 52, in __init__
req = pkg_resources.Requirement.parse(req)
File "/tmp/5221/lib/python3.4/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2873, in parse
reqs = list(parse_requirements(s))
File "/tmp/5221/lib/python3.4/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2816, in parse_requirements
DISTRO, CBRACKET, line, p, (1,), "'extra' name"
File "/tmp/5221/lib/python3.4/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2785, in scan_list
raise ValueError(msg, line, "at", line[p:])
ValueError: ("Expected 'extra' name in", 'spam-0.0.0-cp34-cp34m-linux_x86_64.whl[:test:]', 'at', ':test:]')
尝试使用安装项目时也会发生同样的情况pip install -e .\[:test:\]
我使用 Python 2.7 还是 3.4 都没有关系。我使用最新的 virtualenv ( pip == 6.0.6
, setuptools == 12.0.4
, wheel == 0.24.0
)完成了所有工作
我究竟做错了什么?