Pipenv: TOML๊ณผ ์™„์ „ํžˆ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” Pipfile ๊ตฌ๋ฌธ ๋ถ„์„

์— ๋งŒ๋“  2018๋…„ 03์›” 01์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: pypa/pipenv

์ด ์ •ํ™•ํ•œ ์šฐ๋ ค๋Š” ๋ฌธ์ œ #613์—์„œ ์ œ๊ธฐ๋˜๊ณ  ๊ธฐ๊ฐ๋œ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์–ด๋Š ์‹œ์ ์—์„œ pipenv๋Š” ์ธ์šฉ ํ‚ค์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ์ง€์›์„ ์ค‘๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ Pipfiles๋ฅผ ๋” ์ž˜ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ ์‚ฌ์–‘์„ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ด README์˜ ํ‚ค ์„น์…˜์—์„œ ์ธ์šฉ ๋ฐ ์ ์œผ๋กœ ๊ตฌ๋ถ„๋œ ํ‚ค์™€ ๊ด€๋ จ๋œ ๋‹จ๋ฝ์€ ์ด ๋ฌธ์ œ์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/toml-lang/toml#keys

ํ™˜๊ฒฝ ์„ค๋ช…
  1. ๋ฐ๋น„์•ˆ 10
  2. ํŒŒ์ด์ฌ ๋ฒ„์ „: 3.6.4
  3. Pipenv ๋ฒ„์ „: 10.1.2
์˜ˆ์ƒ ๊ฒฐ๊ณผ

์ด ํ•ํŒŒ์ผ...

[[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

Won't Fix

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์•Œ ๊ฒ ์–ด์š”. wontfix ๋ ˆ์ด๋ธ”์ด ๋‚˜๋ฅผ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋ชจ๋“  3 ๋Œ“๊ธ€

@kennethreitz

TOML ์‚ฌ์–‘์˜ ์ด ๋ถ€๋ถ„์ด ์ง€์›๋˜์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋‚ด ๋ชจ๋“  ํŒจํ‚ค์ง€์— ๋Œ€ํ•ด ์ธ๋ผ์ธ ํ…Œ์ด๋ธ”์— ์˜์กดํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค๋ฉด ์ •๋ง ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.

TOML ์‚ฌ์–‘ ์ค€์ˆ˜์™€ ๊ด€๋ จํ•˜์—ฌ pipfile ์ €์žฅ์†Œ์— ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚ซ์Šต๋‹ˆ๊นŒ?

์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ๊ณ ์น  ๊ฒƒ์ž…๋‹ˆ๋‹ค, ๊ทธ๊ฒƒ์€ ๋‹จ์ง€ ์ง€๊ธˆ ์šฐ๋ฆฌ์—๊ฒŒ ๋‚ฎ์€ ์šฐ์„  ์ˆœ์œ„์ž…๋‹ˆ๋‹ค

์•Œ ๊ฒ ์–ด์š”. wontfix ๋ ˆ์ด๋ธ”์ด ๋‚˜๋ฅผ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰