Pipenv: Pipenv 2018.10.9๋Š” ์ธ๋ผ์ธ ํ…Œ์ด๋ธ”์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

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

๋ฌธ์ œ ์„ค๋ช…

์ด์ „ ๋ฒ„์ „์˜ pipenv ๊ฐ€ ์ธ๋ผ์ธ์—์„œ ํ™•์žฅ๋œ ํ˜•์‹์œผ๋กœ ๋‹ค์‹œ ์ž‘์„ฑํ•œ [package.<>] ํ…Œ์ด๋ธ”์ด ํฌํ•จ๋œ Pipfile์—์„œ ์ž‘์—…์„ ์‹œ๋„ํ•˜๋ฉด Pipenv๊ฐ€ toml ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์•„์ด๋Ÿฌ๋‹ˆํ•˜๊ฒŒ๋„ ์ด๊ฒƒ์ด ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜๋Š” _inline_ ํ…Œ์ด๋ธ”์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ์†์„ฑ ์˜ค๋ฅ˜์ด๋ฉฐ, ์ด๋Š” ์˜ˆ์ œ ํŒŒ์ผ์— ์กด์žฌํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ Pipfile์ด ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(๋นˆ [package] ์„น์…˜์ด ์žˆ๊ฑฐ๋‚˜ ์—†์Œ).

[packages]

[packages.apache-airflow]
editable = true
git = "https://github.com/apache/incubator-airflow.git"

[requires]
python_version = "3.7"

์ด Pipfile์€ _์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด_ ์†์ƒ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค(๋Œ€์‹  #2984์˜ ํ‘œ์‹œ ์Šคํ† ํผ์— ์˜ํ•ด ์ฐจ๋‹จ๋จ).

[packages]
apache-airflow = {editable = true, git = "https://github.com/apache/incubator-airflow.git"}

[requires]
python_version = "3.7"

์˜ˆ์ƒ ๊ฒฐ๊ณผ

pipenv ์ž‘๋™(์„ค์น˜, ์ž ๊ธˆ, ์…ธ ๋“ฑ).

์‹ค์ œ ๊ฒฐ๊ณผ

Traceback (most recent call last):
  File "/usr/local/bin/pipenv", line 11, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/pipenv/vendor/click/decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/pipenv/cli/command.py", line 308, in lock
    ensure_project(three=state.three, python=state.python, pypi_mirror=state.pypi_mirror)
  File "/usr/local/lib/python3.7/site-packages/pipenv/core.py", line 561, in ensure_project
    pypi_mirror=pypi_mirror,
  File "/usr/local/lib/python3.7/site-packages/pipenv/core.py", line 484, in ensure_virtualenv
    python = ensure_python(three=three, python=python)
  File "/usr/local/lib/python3.7/site-packages/pipenv/core.py", line 394, in ensure_python
    python = project.required_python_version
  File "/usr/local/lib/python3.7/site-packages/pipenv/project.py", line 229, in required_python_version
    required = self.parsed_pipfile.get("requires", {}).get(
  File "/usr/local/lib/python3.7/site-packages/pipenv/project.py", line 448, in parsed_pipfile
    parsed = self._parse_pipfile(contents)
  File "/usr/local/lib/python3.7/site-packages/pipenv/project.py", line 480, in _parse_pipfile
    data[section][package] = toml._get_empty_inline_table(dict)
AttributeError: module 'toml' has no attribute '_get_empty_inline_table'

$ pipenv --์ง€์›

Pipenv ๋ฒ„์ „: '2018.10.9'

Pipenv ์œ„์น˜: '/usr/local/lib/python3.7/site-packages/pipenv'

ํŒŒ์ด์ฌ ์œ„์น˜: '/usr/local/opt/python/bin/python3.7'

Python ์„ค์น˜ ๋ฐœ๊ฒฌ:

  • 3.7.0 : /Users/jacobhayes/.local/share/virtualenvs/yay-vfCSW5aP/bin/python3.7
  • 3.7.0 : /usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/bin/python3.7
  • 3.7.0 : /usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/bin/python3.7m
  • 2.7.15 : /usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/bin/python2.7
  • 2.7.10 : /usr/bin/python
  • 2.7.10 : /usr/bin/pythonw
  • 2.7.10 : /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7

PEP 508 ์ •๋ณด:

{'implementation_name': 'cpython',
 'implementation_version': '3.7.0',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '18.0.0',
 'platform_system': 'Darwin',
 'platform_version': 'Darwin Kernel Version 18.0.0: Wed Aug 22 20:13:40 PDT '
                     '2018; root:xnu-4903.201.2~1/RELEASE_X86_64',
 'python_full_version': '3.7.0',
 'python_version': '3.7',
 'sys_platform': 'darwin'}

์‹œ์Šคํ…œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜:

  • Apple_PubSub_Socket_Render
  • COLORFGBG
  • COLORTERM
  • COMMAND_MODE
  • COPYFILE_DISABLE
  • EDITOR
  • GO111MODULE
  • GOPATH
  • HOME
  • HOMEBREW_GITHUB_API_TOKEN
  • ITERM_PROFILE
  • ITERM_SESSION_ID
  • LANG
  • LC_ALL
  • LOGNAME
  • PAGER
  • PATH
  • PIPENV_ACTIVE
  • PIP_PYTHON_PATH
  • PIP_SHIMS_BASE_MODULE
  • PWD
  • PYTHONDONTWRITEBYTECODE
  • SECURITYSESSIONID
  • SHELL
  • SHLVL
  • SSH_AUTH_SOCK
  • TERM
  • TERM_PROGRAM
  • TERM_PROGRAM_VERSION
  • TERM_SESSION_ID
  • TMPDIR
  • TMUX
  • TMUX_PANE
  • TMUX_PLUGIN_MANAGER_PATH
  • USER
  • VIRTUAL_ENV
  • XPC_FLAGS
  • XPC_SERVICE_NAME
  • _OLD_FISH_PROMPT_OVERRIDE
  • _OLD_VIRTUAL_PATH
  • __CF_USER_TEXT_ENCODING
  • __pipenv_fish_initial_pwd

Pipenv ์ „์šฉ ํ™˜๊ฒฝ ๋ณ€์ˆ˜:

  • PIPENV_ACTIVE : 1

๋””๋ฒ„๊ทธ ์ „์šฉ ํ™˜๊ฒฝ ๋ณ€์ˆ˜:

  • PATH : /Users/jacobhayes/.local/share/virtualenvs/yay-vfCSW5aP/bin:/Users/jacobhayes/bin:/Users/jacobhayes/bin:/Users/jacobhayes/bin:/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin:/Users/jacobhayes/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
  • SHELL : /usr/local/bin/fish
  • EDITOR : nvim
  • LANG : en_US.UTF-8
  • PWD : /Users/jacobhayes/src/github.com/JacobHayes/dockerfiles/yay
  • VIRTUAL_ENV : /Users/jacobhayes/.local/share/virtualenvs/yay-vfCSW5aP

Pipfile ('/Users/jacobhayes/src/github.com/JacobHayes/dockerfiles/yay/Pipfile'):

[packages]
apache-airflow = {editable = true, git = "https://github.com/apache/incubator-airflow.git"}

[requires]
python_version = "3.7"

Pipfile.lock ('/Users/jacobhayes/src/github.com/JacobHayes/dockerfiles/yay/Pipfile.lock'):

{
    "_meta": {
        "hash": {
            "sha256": "4fe62ca4ea8f5d57635a26fba05110d9a5301d8aa69f2aebc8d1c7be6738e37b"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_version": "3.7"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "apache-airflow": {
            "editable": true,
            "git": "https://github.com/apache/incubator-airflow.git",
            "ref": "cdbdcae7c0645ac2987360fced43407202716b99"
        }
    },
    "develop": {}
}

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

์ด๊ฒƒ์€ #2971์—์„œ ํ•ด๊ฒฐ๋˜์—ˆ์œผ๋ฉฐ ์˜ค๋Š˜ ๋ฆด๋ฆฌ์Šค์— ํฌํ•จ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

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

์ด๊ฒƒ์€ #2971์—์„œ ํ•ด๊ฒฐ๋˜์—ˆ์œผ๋ฉฐ ์˜ค๋Š˜ ๋ฆด๋ฆฌ์Šค์— ํฌํ•จ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

@techalchemy ์—…๋ฐ์ดํŠธ๋œ ๋ฆด๋ฆฌ์Šค ETA๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์›”์š”์ผ์— ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค๋ฅผ ์œ„ํ•ด ์ด์ „ ๋ฒ„์ „์„ ๊ณ ์ •ํ•ด์•ผ ํ•˜๋Š”์ง€ ์•„๋‹ˆ๋ฉด ๋‹ค์Œ pipenv ๋ฒ„์ „์„ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋Š˜์€ ํœด๊ฐ€ ์ค‘์ด๊ณ  ๋‚˜๋จธ์ง€ 20๋ถ„ ๋™์•ˆ AFK ์ƒํƒœ๊ฐ€ ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

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