这个确切的担忧似乎在问题 #613 中被提出和驳回。 在某些时候,pipenv 放弃了对引用键的适当支持。 如果不是这种情况,那么我希望可以指出使用的规范,以便更好地构建我的 Pipfiles。
本 README 的 Keys 部分中有关引用和带点键的段落与此问题相关: https :
这个 Pipfile...
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"
["requires"]
python_version = "3.6"
[packages]
motor = "*"
[packages."discord.py"]
git = "https://github.com/Rapptz/discord.py.git"
ref = "rewrite"
editable = true
extras = ["voice"]
应该呈现以下字典...(由toml解析并打印)
{'packages': {'discord.py': {'editable': True,
'extras': ['voice'],
'git': 'https://github.com/Rapptz/discord.py.git',
'ref': 'rewrite'},
'motor': '*'},
'requires': {'python_version': '3.6'},
'source': [{'name': 'pypi',
'url': 'https://pypi.python.org/simple',
'verify_ssl': True}]}
Traceback (most recent call last):
File "/home/akirasama/.local/bin/pipenv", line 11, in <module>
sys.exit(cli())
File "/home/akirasama/.local/venvs/pipenv/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/home/akirasama/.local/venvs/pipenv/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/home/akirasama/.local/venvs/pipenv/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/akirasama/.local/venvs/pipenv/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/akirasama/.local/venvs/pipenv/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/home/akirasama/.local/venvs/pipenv/lib/python3.6/site-packages/pipenv/vendor/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/akirasama/.local/venvs/pipenv/lib/python3.6/site-packages/pipenv/cli.py", line 433, in sync
clear=clear, unused=unused, sequential=sequential
File "/home/akirasama/.local/venvs/pipenv/lib/python3.6/site-packages/pipenv/core.py", line 2389, in do_sync
ensure_project(three=three, python=python, validate=False)
File "/home/akirasama/.local/venvs/pipenv/lib/python3.6/site-packages/pipenv/core.py", line 603, in ensure_project
ensure_virtualenv(three=three, python=python, site_packages=site_packages)
File "/home/akirasama/.local/venvs/pipenv/lib/python3.6/site-packages/pipenv/core.py", line 548, in ensure_virtualenv
python = ensure_python(three=three, python=python)
File "/home/akirasama/.local/venvs/pipenv/lib/python3.6/site-packages/pipenv/core.py", line 424, in ensure_python
python = project.required_python_version
File "/home/akirasama/.local/venvs/pipenv/lib/python3.6/site-packages/pipenv/project.py", line 110, in required_python_version
required = self.parsed_pipfile.get('requires', {}).get('python_full_version')
File "/home/akirasama/.local/venvs/pipenv/lib/python3.6/site-packages/pipenv/project.py", line 271, in parsed_pipfile
return contoml.loads(toml.dumps(data, preserve=True))
File "/home/akirasama/.local/venvs/pipenv/lib/python3.6/site-packages/pipenv/patched/contoml/__init__.py", line 15, in loads
elements = parse_tokens(tokens)
File "/home/akirasama/.local/venvs/pipenv/lib/python3.6/site-packages/pipenv/patched/prettytoml/parser/__init__.py", line 17, in parse_tokens
return _parse_token_stream(TokenStream(tokens))
File "/home/akirasama/.local/venvs/pipenv/lib/python3.6/site-packages/pipenv/patched/prettytoml/parser/__init__.py", line 32, in _parse_token_stream
raise ParsingError('Failed to parse line {}'.format(pending.head.row))
prettytoml.parser.errors.ParsingError: Failed to parse line 11
$ pipenv lock
@kennethreitz
您能否解释为什么不支持 TOML 规范的这一部分? 我真的宁愿不必为我的所有包诉诸内联表。
我在 pipfile 存储库上就其遵守 TOML 规范提出问题会更好吗?
我们会修复它,它现在对我们来说只是低优先级
我知道了。 wontfix
标签让我感到困惑。 谢谢!
最有用的评论
我知道了。
wontfix
标签让我感到困惑。 谢谢!