๋ด ์ค์น์ ๋ฌธ์ ๊ฐ ์์ต๋๊น? ๋ด ๋ชจ๋ ์ปดํจํฐ์์ ๋ฐ์ํฉ๋๋ค... ์๋๋ฅผ ๋์ด๊ธฐ ์ํด ๋ด๊ฐ/์ฐ๋ฆฌ๊ฐ ํ ์ ์๋ ์ผ์ด ์์ต๋๊น?
ํ๋์ ํจํค์ง๋ฅผ ์ค์นํ๋๋ฐ ์ ๊ธ์ ๋ช ๋ถ์ด ๊ฑธ๋ฆฌ๋ ๊ฒ ๊ฐ์ต๋๋ค.
Locking [packages] dependenciesโฆ
$ python -m pipenv.help ์ถ๋ ฅ
Pipenv ๋ฒ์ : '2018.05.18'
Pipenv ์์น: '/Users/colllin/miniconda3/lib/python3.6/site-packages/pipenv'
ํ์ด์ฌ ์์น: '/Users/colllin/miniconda3/bin/python'
PATH
๊ธฐํ Python ์ค์น:
2.7
: /usr/bin/python2.7
2.7
: /usr/bin/python2.7
3.6
: /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6m
3.6
: /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
3.6
: /Users/colllin/miniconda3/bin/python3.6
3.6
: /Users/colllin/.pyenv/shims/python3.6
3.6
: /usr/local/bin/python3.6
3.6.3
: /Users/colllin/miniconda3/bin/python
3.6.3
: /Users/colllin/.pyenv/shims/python
2.7.10
: /usr/bin/python
3.6.4
: /Library/Frameworks/Python.framework/Versions/3.6/bin/python3
3.6.3
: /Users/colllin/miniconda3/bin/python3
3.6.4
: /Users/colllin/.pyenv/shims/python3
3.6.4
: /usr/local/bin/python3
PEP 508 ์ ๋ณด:
{'implementation_name': 'cpython',
'implementation_version': '3.6.3',
'os_name': 'posix',
'platform_machine': 'x86_64',
'platform_python_implementation': 'CPython',
'platform_release': '17.5.0',
'platform_system': 'Darwin',
'platform_version': 'Darwin Kernel Version 17.5.0: Mon Mar 5 22:24:32 PST '
'2018; root:xnu-4570.51.1~1/RELEASE_X86_64',
'python_full_version': '3.6.3',
'python_version': '3.6',
'sys_platform': 'darwin'}
์์คํ ํ๊ฒฝ ๋ณ์:
TERM_PROGRAM
NVM_CD_FLAGS
TERM
SHELL
TMPDIR
Apple_PubSub_Socket_Render
TERM_PROGRAM_VERSION
TERM_SESSION_ID
NVM_DIR
USER
SSH_AUTH_SOCK
PYENV_VIRTUALENV_INIT
PATH
PWD
LANG
XPC_FLAGS
PS1
XPC_SERVICE_NAME
PYENV_SHELL
HOME
SHLVL
DRAM_ROOT
LOGNAME
NVM_BIN
SECURITYSESSIONID
_
__CF_USER_TEXT_ENCODING
PYTHONDONTWRITEBYTECODE
PIP_PYTHON_PATH
Pipenv ์ ์ฉ ํ๊ฒฝ ๋ณ์:
๋๋ฒ๊ทธ ์ ์ฉ ํ๊ฒฝ ๋ณ์:
PATH
: /Library/Frameworks/Python.framework/Versions/3.6/bin:/Users/colllin/miniconda3/bin:/Users/colllin/.pyenv/plugins/pyenv-virtualenv/shims:/Users/colllin/.pyenv/shims:/Users/colllin/.pyenv/bin:/Users/colllin/.nvm/versions/node/v8.1.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
SHELL
: /bin/bash
LANG
: en_US.UTF-8
PWD
: /Users/.../folder
Pipfile
('/Users/.../Pipfile')์ ๋ด์ฉ:
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
gym-retro = "*"
[dev-packages]
[requires]
python_version = "3.6"
@colllin pip search
์ ๊ฐ์ด ์๋ฒ์ ์ ์ํ๋ pip ๋ช
๋ น์ด๋ ๋๋ฆฐ์ง ํ์ธํ์
จ๋์?
๋น์ทํ ๋์์ด ๋ณด์ด์ง๋ง ์๋ ค์ง ๋ฌธ์ ์ด๋ฉฐ ๋คํธ์ํฌ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์ด๋ค ์ด์ ๋ก ์ง์ฅ ๋คํธ์ํฌ์์ pypi.org์ ์ก์ธ์คํ๋ ๊ฒ์ ์์ฒญ๋๊ฒ ๋๋ฆฌ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ํ ๋คํธ์ํฌ์์๋ ๋น ๋ฆ ๋๋ค. ์ ๊ธ์ ๋ด๋ถ์ ์ผ๋ก ๋ง์ pip ํธ๋์ญ์ ์ ์ํํ๋ฏ๋ก ์๋ฒ์ ๋ํ ๋๋ฆฐ ์ก์ธ์ค๊ฐ ์์ ์ ๋ง์ด ๋๋ฆฌ๊ฒ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํธ์ง: ํด๊ฒฐํด์ผ ํ ํ์ ์ข
์์ฑ์ด ๋ง์ ์๋ ์์ต๋๋ค. ํ ๋ฒ ์์ฑ๋ ํ๊ฒฝ์ ํฌ๊ธฐ(์: pipfile์ ์ต์์ ํจํค์ง ์ ๋ฐ pip list
๋ฐํ๋ ํจํค์ง ์) ํ๊ฒฝ์ด ๋ถํธ์คํธ๋ฉ๋๋ฉด)?
์ฌ๋ ค๊น์ ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค.
pip search
๋ ํน๋ณํ ๋น ๋ฅด๊ฑฐ๋ ๋๋ฆฌ์ง ์์ต๋๋ค... ~1์ด?
๋๋ฉ์ธ ์ง์์ด ๋ถ์กฑํ ์ ๋ฅผ ์ฉ์ํด ์ฃผ์ญ์์ค. PIP ๊ฒ์์ด ์ ๋ง๋ก ํ์ํ๊ฐ์? ๊ทธ๋ฅ ๋ค ์ค์นํ๊ฑฐ ์๋? ์ด๋ฏธ ์ค์น๋์ด ์๋ ๊ฒ์ ๊ธฐ๋กํ๊ธฐ๋ง ํ๋ฉด ๋๋ ๊ฒ ์๋๊ฐ์? ๋๋ ... ์ด์จ๋ ์ ๊ธ ํ์ผ์ ์กด์ฌ๋ฅผ ๋ณด์ฅํ๊ธฐ ๋๋ฌธ์ ํจํค์ง๋ฅผ ์ค์นํ ๋ ๋๋ ์ด์ ์ ์ด๊ฒ์ ํ ์ ์์ต๋๊น?
๋ด ์๊ฐ์ ... pipenv๋ ํ๋ ์๋์์ pip๋ฅผ ์ฌ์ฉํฉ๋๊น? ๊ทธ๋์ ์ค์น ํ๋ก์ธ์ค๋ ๋ธ๋๋ฐ์ค์ด๊ณ ~pip search~ ์์ฒด pip ์ฟผ๋ฆฌ๋ฅผ ์ํํ์ง ์๊ณ ๋ฌด์์ด ์ค์น๋์๋์ง/์ค์น๋ ๊ฒ์ธ์ง์ ๋ํ ์ข ์์ฑ ๊ทธ๋ํ๋ฅผ ์ ์ ์์ต๋๊น?
ํธ์ง: ์ด ํน์ ๋ฆฌํฌ์งํ ๋ฆฌ์๋ 1๊ฐ์ ์ต์์ ํจํค์ง์ pip list
์์ ๋ฐํ๋ ~65๊ฐ์ ํจํค์ง๊ฐ ์์ต๋๋ค.
๋๋ ํ๋ก์ ํธ์ ๊ธฐ์ฌํ ์ฌ๋์ด ์๋๋ฉฐ ํ์ฌ๋ก์๋ ๋ชจ๋ ์ธ๋ถ ์ฌํญ์ ์์ง ๋ชปํ์ง๋ง ์ ๊ธ ๋จ๊ณ๋ ๋ชจ๋ ์ข ์์ฑ์ด ํด๊ฒฐ๋๊ณ ๊ณ ์ ๋๋ ๋จ๊ณ๋ผ๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ~65๊ฐ์ ์ข ์์ฑ์ด ์๋ ์ต์์ ํจํค์ง๊ฐ ํ๋ ์๋ ๊ฒฝ์ฐ ์ ๊ธ ๋จ๊ณ ๋์ ํด๋น ์ฒซ ๋ฒ์งธ ํจํค์ง์ ๋ชจ๋ ์ข ์์ฑ์ด (์ฌ๊ท์ ์ผ๋ก) ๋ฐ๊ฒฌ๋๊ณ ์ข ์์ฑ ํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ค์นํด์ผ ํ๋ ํจํค์ง๋ฅผ ํ์ธํ๊ณ (์๋ง๋) ๋๋ต์ ์ธ ์์๋ก ์ค์นํด์ผ ํฉ๋๋ค. ๋ง์ง๋ง ๋ถ๋ถ์ ํ์คํ์ง ์์ต๋๋ค.
์ ๊ธ ํ์ผ์ด ์๋ Pipfile์์ pip installํ๋ฉด ํจํค์ง๋ฅผ venv์ ์ค์น ํ๊ธฐ ์ ์ ์ ๊ธ ๋จ๊ณ --deploy
๊ฒ์ผ๋ก, ๋น ๋ฅธ ๊ฒ ์ต์
์ --no-lock
์ต์
; ์ ์์ ๊ฒฝ์ฐ ์ ๊ธ ํ์ผ์ด ์ค๋๋ ๊ฒฝ์ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ํ์์ ๊ฒฝ์ฐ ์ต์์ ํจํค์ง(์ ์ธ๋ ํ๊ฒฝ)์ ๋ชจ๋ ํจํค์ง์ ์ค์ ์ค์น๋(์ ๊ธด) ํ๊ฒฝ์ ๋
ผ๋ฆฌ์ ๋ถํ ์ ์๊ฒ ๋ฉ๋๋ค. ์ ์ด๋ ์ด๊ฒ์ด ๋ด๊ฐ ์ดํดํ๋ ๋ฐฉ์์
๋๋ค.
pipenv๊ฐ ํ๋ ์๋์์ pip๋ฅผ ์ฌ์ฉํ๋์ง ์ฌ๋ถ - ๊ทธ๋ ๊ฒ ์๊ฐํฉ๋๋ค - ์ฌ์ ํ pypi ์๋ฒ์์ ํจํค์ง ์ข ์์ฑ ๋ฑ์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์์ผ ํ๋ฏ๋ก pip ๊ฒ์์ ๋ํ ๋ด ์ง๋ฌธ์ ์ผ๋ง๋ ๋น ๋ฅด๊ฑฐ๋ pypi ์๋ฒ๋ก ๊ฐ๋ ๊ฒฝ๋ก๋ฅผ ๋๋ฆฌ๊ฒ ํ๋ ๊ฒ์ pipenv๊ฐ ๊ทธ ์ผ์ ํ๋ ๋ฉ์ปค๋์ฆ์ ๋ํ ์ง์ ์ ์ธ ์์๋ณด๋ค ๋ ๋ง์ต๋๋ค.
ํฅ๋ฏธ๋ก์ด ์คํ์ pipenv์์ ์ข
์์ฑ ํธ๋ฆฌ๋ฅผ ์ ๊ทธ๊ณ pip install -r requirements.txt
์ฌ์ฉํ์ฌ ์ ํ๊ฒฝ์ ์๊ตฌ ์ฌํญ์ ์ค์นํ๋ ๋ฐ ํ์ํ ์๊ฐ์ ๋น๊ตํ๋ ๊ฒ์
๋๋ค. ๋๋ ๊ทธ๋ค์ด ์์กด์ฑ ํด๊ฒฐ ๋จ๊ณ์์ ๊ฝค ๋น์ทํ ์ผ์ ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ค๋ณต ๋ค์ด๋ก๋๊ฐ ๋ฐ์ํ๋ค๋ ๊ฒ์ ์ด๋๊ฐ์ ์ค์ ํ์ต๋๊น? ๋๋ ๊ทธ๊ฒ์ด ์ฌ์ค์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ๊ทธ๊ฒ์ ์ฆ๋ช ํ๋ฉด ์ ๋ง ๋์์ด ๋ ๊ฒ์ ๋๋ค.
์ฐธ๊ณ ๋ก pip install -r requirements.txt
๋ฅผ ์ข
์์ฑ ๊ทธ๋ํ๋ฅผ ์ ๊ทธ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ๊ณผ ๋น๊ตํ๋ ๊ฒ์ ๋น๊ต ํฌ์ธํธ๋ก ์ ์ฉํ์ง ์์ ๊ฒ์
๋๋ค. Pip์ ์ค์ ์๋ฏธ์์๊ฐ ์๋๋ผ ์ค์ ๋ก ๋ฆฌ์กธ๋ฒ๋ฅผ _๊ฐ์ ธ ์์ง_ ์์ต๋๋ค. ์ฐจ์ด์ ์ ์ค๋ช
ํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. pip๊ฐ requirements.txt
์ค์นํ ๋ ๋ค์ ๊ธฐ๋ณธ ํ๋ก์ธ์ค๋ฅผ ๋ฐ๋ฆ
๋๋ค.
์ด๊ฒ์ _package 1_์ ์ข ์์ฑ์ด _package 3_์ ์ข ์์ฑ๊ณผ ์ถฉ๋ํ๋์ง ์ฌ๋ถ๋ฅผ pip๊ฐ ์ค์ ๋ก ์ ๊ฒฝ ์ฐ์ง ์๊ธฐ ๋๋ฌธ์ ๊ฝค ๋น ๋ฅธ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
Pipenv๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ๋ฐ๋ฆ ๋๋ค. ํ๊ฒฝ์ ๊ตฌ์ถํ๊ธฐ ์ ์ ์ง์ ํ ์ข ์์ฑ์ _๋ชจ๋ _์ ์ถฉ์กฑ์ํค๋ ค๋ ํด์๋ ๊ทธ๋ํ๋ฅผ ๊ณ์ฐํฉ๋๋ค. ์ด๋ ์ฐ๋ฆฌ๊ฐ ์ค์ ์ค์น ํ๋ก์ธ์ค๋ฅผ ์์ํ๊ธฐ๋ ์ ์ ์ฌ๋ฌ๋ถ์ ํ๊ฒฝ์ด ๊ถ๊ทน์ ์ผ๋ก ์ด๋ค ๋ชจ์ต์ด์ด์ผ ํ๋์ง๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด ๋ค์ด๋ก๋, ๋น๊ต ๋ฐ โโ์ข ์ข _building_ ํจํค์ง๋ฅผ ์์ํด์ผ ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค(์ ์ด๊ฒ์ด ํ์ด์ฌ์ ๊ฒฝ์ฐ์ด๋ฏ๋ก ์ฌ๊ธฐ์์ ๋ ์์ธํ ๋ค๋ฃจ์ง ์๊ฒ ์ต๋๋ค).
ํด๋น ํด๊ฒฐ ํ๋ก์ธ์ค์ ๊ฐ ๋จ๊ณ๋ ํด์๋ฅผ ์๊ตฌํ๋ฏ๋ก ๊ณ์ฐ ๋น์ฉ์ด ๋ ๋ง์ด ๋ญ๋๋ค. ์ด๋ ๋ชจ๋ฒ ์ฌ๋ก์ ๋๋ค. ์ฐ๋ฆฌ๋ ๋ค์ด์ค๋ ํจํค์ง๋ฅผ ๋ฐ์ ํ ํด์ํ๊ณ PyPI๊ฐ ์์ํด์ผ ํ๋ค๊ณ ๋งํ ํด์์ ๋น๊ตํ๊ณ ํด๋น ํด์๋ฅผ ์ ๊ธ ํ์ผ์ ์ ์ฅํ์ฌ ๋ฏธ๋์ ๋์ผํ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ ค๋ ์ฌ๋๋ค์ด ํ ์ ์๋๋ก ํฉ๋๋ค. ํจํค์ง๋ฅผ ๋น๋ํ๋ ๋ฐ ์ฌ์ฉ๋ ํจํค์ง๊ฐ ์๋ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ ํจํค์ง์์ ๊ณ์ฝ์ ๋ณด์ฅํฉ๋๋ค.
Pip ๊ฒ์์ ์ด๊ฒ์ ๋ํ ๋น์ฝํ ๋ฒค์น๋งํฌ์ ๋๋ค. ์ฌ์ค pip์ ๋๊ตฌ๋ ์ด ์์ ์ ์ํํ๊ธฐ ์ํ ๋น์ฝํ ๋ฒค์น๋งํฌ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๊ฐ ๋ถ๋ถ์ ๋ํด pip๋ฅผ ์ฌ์ฉํ์ง๋ง ํจ๊ป ๊ตฌ์ฑํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ง์ ์ข ์์ฑ์ ํจ๊ป ์ฌ์ฉํฉ๋๋ค. ํ๊ฒฝ ๋ฐ ๊ทธ๋ํ๋ pipenv์ ๊ฐ์ด ์ถ๊ฐ๋๋ ๊ณณ์ ๋๋ค.
ํ ๊ฐ์ง ๋ช
ํํ ํ ์ ์ ์ ์ฒด ์ข
์์ฑ ๊ทธ๋ํ๋ฅผ ํด๊ฒฐํ๋ฉด ์ค์น ์์๊ฐ ๋ ์ด์ ์ค์ํ์ง ์๋ค๋ ๊ฒ์
๋๋ค. ํ๋ ์๋์์ ์ฐ๋ฆฌ๋ ์ค์ ๋ก --no-deps
๋ฅผ ๋ชจ๋ ์ค์น์ ์ ๋ฌํฉ๋๋ค.
์์ ๋ถ์์ ์ผ๋ก, pip ๊ฒ์์ ํ์ฌ ์ฌ์ฉ๋์ง ์๋ XMLRPC ์ธํฐํ์ด์ค์ ์์กดํ๋ ์ ์ผํ pip ๋๊ตฌ์ ๋๋ค. ์ด ์ธํฐํ์ด์ค๋ ์บ์ํ ์ ์๊ณ ๋งค์ฐ ๋๋ฆฝ๋๋ค. ๋ค๋ฅธ ์์ ๋ณด๋ค ํญ์ ๋๋ฆฝ๋๋ค.
๋ด ์ปดํจํฐ์์ numpy๋ฅผ ์ ๊ทธ๋ ๋ฐ(๋ค๋ฅธ ๊ฒ์ ์๋ฌด๊ฒ๋ ์์) 220์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค(์๋ ์ฐธ์กฐ). ๋๋ถ๋ถ์ ์๊ฐ์ 200MB ์ด์์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ก๋ํ๋ ๋ฐ ์๋น๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ ์ ์ฒด numpy ์์ค์ 4MB๊ฐ ์๋ค๋ ์ ์ ๊ฐ์ํ ๋ ์๋นํ ๋นํน์ค๋ฝ์ต๋๋ค. ๋น๋ก ๊ทธ๊ฒ์ด ์ฆ๊ฐ์ ์ผ์ง๋ผ๋, ์ฌ์ ํ 25์ด์ ์ค์ ์ฒ๋ฆฌ๊ฐ ์๊ณ , ๊ทธ๋ง์ ๋ ๋ช ๊ฐ์ ํด์๋ฅผ ๊ณ์ฐํ๊ธฐ์๋ ๊ณผ๋ํด ๋ณด์ ๋๋ค. Pipenv.lock์ ์ญ์ ํ ํ์๋ ํ์ ์ ๊ธ์๋ 5์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค.
11:46 ~/Co/Ce/torchdft time pipenv install
Creating a virtualenv for this projectโฆ
Using /usr/local/Cellar/pipenv/2018.5.18/libexec/bin/python3.6 (3.6.5) to create virtualenvโฆ
โ Already using interpreter /usr/local/Cellar/pipenv/2018.5.18/libexec/bin/python3.6
Using real prefix '/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6'
New python executable in /Users/hermann/.local/share/virtualenvs/torchdft-mABBUp_t/bin/python3.6
Also creating executable in /Users/hermann/.local/share/virtualenvs/torchdft-mABBUp_t/bin/python
Installing setuptools, pip, wheel...done.
Virtualenv location: /Users/hermann/.local/share/virtualenvs/torchdft-mABBUp_t
Creating a Pipfile for this projectโฆ
Pipfile.lock not found, creatingโฆ
Locking [dev-packages] dependenciesโฆ
Locking [packages] dependenciesโฆ
Updated Pipfile.lock (ca72e7)!
Installing dependencies from Pipfile.lock (ca72e7)โฆ
๐ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 0/0 โ 00:00:00
To activate this project's virtualenv, run the following:
$ pipenv shell
7.81 real 6.39 user 1.64 sys
11:46 ~/Co/Ce/torchdft time pipenv install numpy --skip-lock
Installing numpyโฆ
Collecting numpy
Using cached https://files.pythonhosted.org/packages/f6/cd/b2c50b5190b66c711c23ef23c41d450297eb5a54d2033f8dcb3b8b13ac85/numpy-1.14.5-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Installing collected packages: numpy
Successfully installed numpy-1.14.5
Adding numpy to Pipfile's [packages]โฆ
4.97 real 2.88 user 1.81 sys
11:46 ~/Co/Ce/torchdft time pipenv lock --verbose
Locking [dev-packages] dependenciesโฆ
Using pip: -i https://pypi.org/simple
ROUND 1
Current constraints:
Finding the best candidates:
Finding secondary dependencies:
------------------------------------------------------------
Result of round 1: stable, done
Locking [packages] dependenciesโฆ
Using pip: -i https://pypi.org/simple
ROUND 1
Current constraints:
numpy
Finding the best candidates:
found candidate numpy==1.14.5 (constraint was <any>)
Finding secondary dependencies:
numpy==1.14.5 not in cache, need to check index
numpy==1.14.5 requires -
------------------------------------------------------------
Result of round 1: stable, done
Updated Pipfile.lock (4fccdf)!
219.24 real 25.14 user 5.77 sys
์ด์ Numpy๊ฐ ํจ์ฌ ๋ ๋นจ๋ผ์ผ ํฉ๋๋ค(์ฌ์ค ์ ๋ ๊ทํ์ ์์ ๋ฅผ ํ ์คํธ ์ผ์ด์ค๋ก ์ฌ์ฉํ๊ณ ์์ต๋๋ค!). ๊ฐ์ฅ ์ต๊ทผ์ ํ ์คํธ์์ VM์ ์ฝ๋ ์บ์์์ ~30์ด๋ก ์ค์ ํ์ต๋๋ค.
์ต์ ๋ฆด๋ฆฌ์ค์์ ๊ฐ์ ๋ ์ฌํญ์ ํ์ธํ ์ ์์ต๋๊น?
์ ์๊ฒ๋ ์๋นํ ๊ฐ์ ๋์์ต๋๋ค. ๋๋ ์ง๊ธ ๋งค์ฐ ๋น ๋ฅธ ์ฐ๊ฒฐ์ ์์ ์๊ณ 14์ด๋งํผ ๋ฎ์์ก์ง๋ง ๋ค์ด๋ก๋๊ฐ 30MB/s๋ก ์งํ๋์์ ๋์์ต๋๋ค. numpy ์์ค ์ฝ๋์ ๋จ์ผ ์ฌ๋ณธ ์ธ์ ๋ค์ด๋ก๋๋๋ ๊ฒ์ ๋ฌด์์ ๋๊น?
์ค๋ณต ํ ์ ๋ค์ด๋ก๋ํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค(ํ์คํ์ง ์์). ์ฐ๋ฆฌ๋ ์ด๋ฏธ ์ํฉ์ ํ๊ฐํ๊ณ ์์ต๋๋ค.
fe ๋ณ๊ฒฝ ์ฌํญ์ ์ ๊ฑฐํ๊ณ ์ด์ ์ด๋ฅผ ๋ค๋ฅธ ์ปดํจํฐ์ ๋ฐฐํฌํ์ฌ Pipfile.lock์ ํฌ๊ฒ ๋ณ๊ฒฝํ์ต๋๋ค. ์ด์ ๋ํ ํน์ ์์ ์ฌํญ์ด ์์ต๋๊น?
์ ๊ธ ํ์ผ์ ์๋์ผ๋ก ํธ์งํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ถ๊ฐ ์ ๋ณด๊ฐ ์์ผ๋ฉด ๋์์ ๋๋ฆด ์ ์์ต๋๋ค. ๋ณ๋์ ์ด์๋ฅผ ์ด์ด์ฃผ์ธ์.
pipenv ์ ๊ธ์ ์ฑ๋ฅ์ ๋ฒค์น๋งํนํ๋ ค๋ฉด ์ข
์์ฑ์ pytmx๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค...
pipenv ์ ๊ธ์ ์ฐ๋ฆฌ์๊ฒ 1์๊ฐ ์ด์ ๊ฑธ๋ ธ๊ณ (์ธํฐ๋ท ์๋๊ฐ ๊ฝค ๋๋ฆผ) pytmx๋ฅผ ์ ๊ฑฐํ ํ ์ฝ 5๋ถ์ผ๋ก ์ค์ด๋ค์๊ณ ๋ง์นจ๋ด pipenv๊ฐ ๋ ์ ์ฉํด์ก์ต๋๋ค.
๋๋ pytmx๊ฐ ํฐ ๋ชจ๋๋ฆฌ์ lib์ด๊ณ opengl/pygame ๋ฐ ๊ธฐํ ๊ด๋ จ ํญ๋ชฉ์ ์์กดํ๊ธฐ ๋๋ฌธ์ ํฐ ํจํค์ง๋ผ๋ ๊ฒ์ ์๊ณ ์์ง๋ง ํจํค์ง๊ฐ ์ผ๋ง๋ ํฌ๋๋ผ๋ pipenv ์ ๊ธ์ 1์๊ฐ์ด ๊ฑธ๋ฆฌ์ง ์์์ผ ํฉ๋๋ค.
๋์๊ฒ 1์๊ฐ๋ ๊ฑธ๋ฆฌ์ง ์์
$ cat Pipfile
[packages]
pytmx = "*"
$ time pipenv lock --clear
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Updated Pipfile.lock (eb50ab)!
real 0m2.827s
user 0m2.287s
sys 0m0.390s
๋ํ PyTMX๋ PyPI์์ 20kb ๋ฏธ๋ง์ด๊ณ 6๊ฐ(์ด์ํ)์ ๋ํ ์ข ์์ฑ์ด ํ๋๋ง ์์ผ๋ฏ๋ก ๋คํธ์ํน์ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค. ๊ทํ์ ํ๊ฒฝ์์ ๋ค๋ฅธ ์ผ์ด ์ผ์ด๋๊ณ ์์ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
๋น์ ์ด ์ณ์ต๋๋ค. ํ์ด ๊ฒ์ ๋ฑ์ ๋ช
์ ์ ์ผ๋ก ์์กดํ์ง ์๋๋ค๊ณ ์๊ฐํ๋ ๊ฒ๋ณด๋ค ์์ต๋๋ค. ์ ๊ทธ๋ ๊ฒ ์ค๋ ๊ฑธ๋ ธ๋์ง ํ์คํ์ง ์์ต๋๋ค!
๋ ๋ง์ ์ ๋ณด๋ฅผ ์ฐพ์ผ๋ ค๊ณ ๋
ธ๋ ฅํ๊ฒ ์ง๋ง CPU์ SSD๊ฐ ์ต๊ณ ์ด๋ฏ๋ก ์ฌ์ ํ ๋ฌธ์ ๊ฐ ๋๋ฆฐ ์ธํฐ๋ท๊ณผ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@techalchemy ํ์ผ์ ์๋์ผ๋ก ํธ์งํ์ง ์์์ต๋๋ค. pipenv uninstall package_name
์ฌ์ฉํ์ฌ ๋ง์ ์ข
์์ฑ์ ์ ๊ฑฐํ ํ ์๋ฒ์์ ์คํํ์ต๋๋ค. ์์ฃผ ์ค๋ซ๋์ ์ ๊ธ ์ํ๋ฅผ ์ ์งํ์ต๋๋ค.
๋๋ ์ด๋ ์์์ ๋ฌด์์ ์ท์ผ๋ก ์ด ํ ๋ก ์ ์๋์ง๋ฅผ ์๋นํ๋ ๋ฐ ๊ด์ฌ์ด ์์ต๋๋ค. ์ฌํ ๊ฐ๋ฅํ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์ ๊ณตํ์ญ์์ค.
์ฌ๊ธฐ ์ฌํ ๊ฐ๋ฅํ ํ
์คํธ ์ผ์ด์ค๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
https://github.com/Mathspy/tic-tac-toe-NN/tree/ab6731d216c66f5e09a4dabbe383df6dc745ba18
ํ๋ ค๊ณ
pipenv install
์ด ์ ๊ธ์ด ์๋ ์ ์ฅ์์์ ํ์๋๋ ๋์ ์ง๊ธ๊น์ง 700MB ์ด์์ ๋ค์ด๋ก๋ํ์ต๋๋ค.
Locking [packages] dependencies...
์ ์ ํ ์ค๋จํ๊ณ ์์ ๋ ๋๊น์ง --skip-lock
๋ค์ ์คํํฉ๋๋ค.
lock
์ด ์ ๋ง ๋๋ฆฌ๊ณ files.pythonhosted.org
์์ scipy
flask
๋ฑ์ ์์กดํ๋ ์๊ท๋ชจ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ 800MB๊ฐ ๋๋ ์์ฒญ๋ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ก๋ํ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
๊ทธ๋์ files.pythonhosted.org
๋ํ ์์ฒญ์ ์ค๋ํํ๋๋ฐ pip ๋๋ pipenv๊ฐ ์์ ํ ๋ถํ์ํ ๋ค์ด๋ก๋๋ฅผ ์ํํ๊ณ ์์ด lock
๊ณ ํต์ค๋ฝ๊ฒ ๋๋ ค์ก์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๋์ผํ ๋ฒ์ numpy
์ด ์ ์ฒด๋ฅผ ์ฌ๋ฌ ๋ฒ ๋ค์ด๋ก๋ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Mac์ ์ฌ์ฉํ๊ณ ์์์ง๋ง Windows/Linux์ฉ ํ ์ ๋ค์ด๋ก๋ํ์ต๋๋ค.
๋ด ์ค์ :
$ pipenv --version
pipenv, version 2018.05.18
$ pip -V
pip 18.0 from /usr/local/lib/python2.7/site-packages/pip (python 2.7)
์ฌ๊ธฐ์ ๋๋ฒ๊น ์ ๋์์ด ๋๋ ์ถ๊ฐ Pipfiles๊ฐ ์์ต๋๊น?
๋๋ถ๋ถ @AlJohri , ์คํ ์ค์ธ ํ๋ก์ธ์ค/์ ๊ธ/io์ ๋ํ ์ ๋ณด๊ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
์ด๋ฏธ ์ฝ 5 ๋ถ ๋์ ์ฌ๊ธฐ์ ๋ถ์ด ์์ต๋๋ค. ์ฒ์์๋ ์ผ์ข
์ pip ์ค์น ๋ฌธ์ ์ผ ์ ์๋ค๊ณ ์๊ฐํ๊ณ Homebrew๋ฅผ ํตํด ๋ชจ๋ ๊ฒ์ ์๋ก ๋ค์ ์ค์นํ์ง๋ง ์ฌ์ ํ ๋์ผํ ๋ฌธ์ ์
๋๋ค. ์ด๋ค ์์ด๋์ด๊ฐ ์์ต๋๊น?
์ฝ 6~7๋ถ ํ ๋๋์ด ์์ฑ. Python๊ณผ Pipenv๋ฅผ ์ฒ์ ์ ํ์ผ๋ฏ๋ก ๋๋ฒ๊น ์ ํ์ํ ํ์ผ์ ์ฐพ๋ ๋ฐ ์ฝ๊ฐ์ ๋์์ด ๋ ๊ฒ์ ๋๋ค! :)
์ด๊ฒ์ ์๋ก์ด python ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ฑฐ๋ ๊ธฐ์กด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ทธ๋ ์ด๋ํ๋ ๊ฒ์ ๋๋ ค์ํ ์ ๋๋ก ๋งค์ฐ ๋์ฉ๋๋ค.
์ ์์์ ๋ํ ์ค ํ๋๋ฅผ ๋ณธ ํ pipenv
๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ํ์ง๋ง ๋๋ฌด ๋๋ฆฝ๋๋ค.
ํต์ฐฐ๋ ฅ ์๋ ํผ๋๋ฐฑ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
@techalchemy ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ํด๊ฒฐํ๊ธฐ ์ํด ์ ๊ฐ ํ ์ ์๋ ์ผ์ด ์๋ค๋ฉด. ๊ธฐ์ฌํ๊ฒ ๋์ด ๋งค์ฐ ๊ธฐ์ฉ๋๋ค.
lock
์ด ์ ๋ง ๋๋ฆฌ๊ณfiles.pythonhosted.org
์์scipy
flask
๋ฑ์ ์์กดํ๋ ์๊ท๋ชจ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ 800MB๊ฐ ๋๋ ์์ฒญ๋ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ก๋ํ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
๊ฒฐ์ ์ ์ธ ์ฆ๊ฑฐ๋ ์๋์ง๋ง scipy
๊ฐ ๋งค์ฐ ๊ธด pipenv
์ ๊ธ ์๊ฐ๊ณผ ์๊ด๊ด๊ณ๊ฐ ์๋ค๋ ์์ฌ์ด ์์ต๋๋ค.
๋๋๋ก ์ ๋ง ๊ณ ํต์ค๋ฝ์ต๋๋ค. ์ ๋ PyPDF2์ textract๋ฅผ ์ค์นํ๊ณ ์์ต๋๋ค. pipenv๋ฅผ ์ ๊ทธ๋ ๋ฐ ~10๋ถ์ด ๊ฑธ๋ ธ์ต๋๋ค.
pipenv์ ๋๋ฆผ์ ์ฐ๋ฆฌ๋ฅผ ์ํ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ์ ๋ง๋ก ๋ฐฉํดํฉ๋๋ค. ์ด์ ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ๋๊น์ง ๋ชจ๋ ์ฌ๋์๊ฒ pip + virtualenv๋ฅผ ์ฌ์ฉํ๋๋ก ์กฐ์ธํฉ๋๋ค.
์ด๊ฒ์ ๋ํ ์์์ด ์์ต๋๊น? ๋์ธ ๋ฐฉ๋ฒ์ด ์๋์?
https://github.com/pypa/pipenv/issues/1914์ ์์์
/ ํธ์ง: btw, pipenv install
๊ฐ ์ ๊ธ ํ์ผ์ ๋ฒ์ ์ ์
๋ฐ์ดํธํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น? o.ร ์ ๊ธ ์๊ฐ์ด ์ด๊ณผ๋ ํ ๋ฐฉ๊ธ ์คํํ๋๋ฐ ์ด์ ์ ์ ๊ธ ํ์ผ์ ๋ณด๋ pandas๊ฐ 0.23.4์์ 0.24.0์ผ๋ก, numpy๊ฐ 0.16.0์์ 0.16.1๋ก ์
๋ฐ์ดํธ๋์์ต๋๋ค. ๋ด๊ฐ pipenv update
ํ์ง ์๋ ํ ๊ทธ๋ฐ ์ผ์ด ์ผ์ด๋ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ์ง
๋นจ๋ฆฌ ์ค์นํ๊ณ ๋๋ฆฌ๊ฒ ์ ๊ธฐ๋ฏ๋ก Installation Succeeded
๋ฉ์์ง๋ฅผ ๋ฐ๋ ์ฆ์ ๊ณ์ ์์
ํ๋ ๊ฒ์ด ์ข์ต๋๋ค... ๋ค๋ฅธ ๊ฒ์ ์ค์นํ์ง ์์ผ๋ ค๋ฉด...
... ๋๋ ์ ๊ธ ํ์ผ์ ์ผ๋ถ ์ ์ฅ์์ ํธ์ํด์ผ ํฉ๋๋ค.
lock
๊ฐ ์ด๋ฏธ ๋ณ๋์ ๋ช
๋ น์ธ ๊ฒ์ ๋ณผ ๋ install
๊ฐ ์ ๊ธ์ ์ํํด์ผ ํฉ๋๊น? ํํธ install
์ต์
์ค๋ช
์ ์ ๊ธ๋ ๋ฐ์ํ๋๋ก ์ง์ ํด์ผ ํ๋ฉฐ --skip-lock
๊ถ์ฅํ ์๋ ์์ต๋๋ค.
๋ํ ์ด ๋ฌธ์ ๋ฅผ ๊ณ ์ ํ๋ ๊ฒ์ ์ด๋ป์ต๋๊น?
Pipenv๋ ์ ๋ง ๋ฉ์ง ๋๊ตฌ์ด๊ณ ์ถ์ฒํ๊ณค ํ์ง๋ง 8๊ฐ์ ๋ชจ๋์ด ์๋ ํ๋ก์ ํธ๋ ์ ๊ธ ์ ์์ต๋๋ค... ์๊ฐ์ด ์ด๊ณผ๋ฉ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๊ด์ฌ์ด ์๋ ๊ฒ ๊ฐ๊ณ ๋งค์ฐ ์ค๋ง์ค๋ฝ์ต๋๋ค. ์ง๊ธ pypy์์ ๋ค์ด๋ก๋ํ์ง ์๊ณ ๋ ์ข ์์ฑ์ ์ป์ ์ ์๋ค๋ ๊ฒ์ ์ฝ์์ต๋๋ค. ์ด๊ฒ์ด ์ด ๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋๊น? ์ฌ๊ธฐ์์ ํด๋น ์ต์ ์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ํ์ฌ ์ด ๋๊ตฌ๋ ๋ด ๋ชฉ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
pexpect.exceptions.TIMEOUT: <pexpect.popen_spawn.PopenSpawn object at 0x10e12e400>
searcher: searcher_re:
0: re.compile('\n')
<pexpect.popen_spawn.PopenSpawn object at 0x10e12e400>
searcher: searcher_re:
0: re.compile('\n')
pipenv lock -r 87.22s user 18.57s system 11% cpu 15:02.77 total
์ด๊ฒ์ด ์ด ํ๋ก์ ํธ์ ์ฃผ์ ์ฐ์ ์์๊ฐ ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? Pipenv๋ ๋๋ฌด ๋๋ ค์ ๊ฑฐ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ผ๋ถ ๋๋ฌธ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํ๋ ๊ฒ์ด ์๋๋ผ ํญ์ ๋งค์ฐ ๋๋ฆฝ๋๋ค.
๋ด๋ถ์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง์ ๋ํด ๋๋ฌด ๋ง์ด ์์ง ๋ชปํ ์ฑ ๋๋ ์ด๊ฒ์ด ์ข ์์ฑ ๊ทธ๋ํ์ ๋ก์ปฌ ์บ์๋ก ํ๋ฅญํ๊ฒ ํด๊ฒฐ๋ ์ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค.
๊ทธ๊ฒ์ ๋ํด ์๊ฐ : ์ฐ๋ฆฌ๊ฐ ํจํค์ง๋ฅผ ์บ์ํ๋ ๊ฒฝ์ฐ x-1.2.3
์ ๋ฐ๋ผ y>=3.4
, ์ฐ๋ฆฌ๋ ๋ก์ปฌ ํ์ฌ ์ข
์์ฑ์ ํ ๋ฒ์ ํจํค์ง ํ๋๋ฅผ ๋ค์ด๋ก๋๋ฅผ ํ๋ํ๊ณ , ํ์ธ์ ๋๋ผ ์ผ์ ๋ง์ด ํ ์ ์์ต๋๋ค . lock
๋จ๊ณ๋ ๋ค์๊ณผ ๊ฐ์ด ๊ฐ๋จํฉ๋๋ค.
๋ชจ๋ ๊ฒฝ์ฐ์ ์ฒ์์๋ ๋๋ฆด ์ ์์ง๋ง ํ์ ์ ๊ธ์ ๊ณ ํต์ค๋ฝ์ง ์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ ์ฃ ?
์์ ํ๋ก์ ํธ์ pip ๋์ pipenv๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๋ด๊ฐ ํ ์ฒซ ๋ฒ์งธ ์ผ์ pipenv install -r requirements.txt
์
๋๋ค. ์ฝ 10๋ถ ๋์ ์ข
์์ฑ์ ์ ๊ทธ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋๋ ํ์ผ๋ก ๋์๊ฐ ๊ฒ์ด๋ค.
์ฌ๋ฌ๋ถ, ์ด ๋ฌธ์ ๋ก ์ธํด ๋ง์ ์ฌ์ฉ์๊ฐ ๋น์ฉ์ ์ง์ถํ๊ณ ์์ต๋๋ค. ์ ์ํ๊ฒ ์ฒ๋ฆฌํ ๊ฒ์ ์ ์ํฉ๋๋ค.
์ ๊ฒฝ์ฐ์๋ ์๋ฒ์ ์ข
์์ฑ์ ์ค์นํ๋ฉด ๋ช ์๊ฐ ๋์ ์๋ฒ๊ฐ ์ค๋จ๋ฉ๋๋ค. 1GB RAM์ด ์๋ AWS EC2 ์ธ์คํด์ค t2.micro
ํ๊ณ ์์ต๋๋ค. ์ด ๋ง์ RAM์ ์ข
์์ฑ์ด ๊ฑฐ์ ์๋ ๋จ์ผ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ถฉ๋ถํ์ง๋ง ์ค์น ์ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ฌ์ฉ๋๋ฉฐ ์๋ฒ๋ฅผ ๋ค์ ์์ํ์ฌ ์๋ํ๊ฒ ํ๋ ๋ฐฉ๋ฒ์ ํ ๊ฐ์ง๋ฟ์
๋๋ค.
์ด ๋ฌธ์ ๋ ์๋ ๋์ ๋ณด๋ฅ ์ค์ด๋ฉฐ ์ด์ ๋ํ ์์ ์ฌํญ์ด ์์ต๋๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ ์์ด ์ฌ๋ฌ ๋ฌธ์ ๊ฐ ์ข ๋ฃ๋๋ ๊ฒ์ ๋ด ๋๋ค.
๊ทธ๋ฐ ์ข์ ๋๊ตฌ๊ฐ ๋ฌด์๋๊ณ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ ์ ๋ ํด๊ฒฐ๋์ง ์์ ๊ฒ ๊ฐ์์ ๊ตฌ๋ ์ ์ทจ์ํ๊ฒ ์ต๋๋ค. conda์ ๊ฐ์ ๊ฒ์ ๊ณ ์ํ๊ฑฐ๋ virtualenv๋ฅผ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ์ํํฉ๋๋ค.
https://github.com/sdispater/poetry์ ํ ๋ฒ ๋์ ํด ๋ณด๊ฒ ์ต๋๋ค:|
๊ด๋ฆฌ์๊ฐ ์ด ์ค๋ ๋๋ฅผ ๋๊ธ๋ก ๋ซ์ ์ ์๋์? ํ ๋ก ์ ์ ์ฉํ ์ถ๊ฐ ์ฝํ ์ธ ๊ฐ ์ถ๊ฐ๋์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฌธ์ ํด๊ฒฐ์ ์ํ ์์ ์ ์ถ์ ํ๋ ํฐ์ผ์ ๊ตฌ๋ ํ๊ณ ์ถ์ต๋๋ค.
๊ฐ์ฌ ํด์!
๋๋ ์ด ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ณ ์ด ์ค๋ ๋์ ๋ํด ๋ถํํ๋ ์ฌ๋๋ค์ 99%๊ฐ ํ๋ก๊ทธ๋๋จธ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ง์ง๋์ง ๋ง๊ณ ์ ์ด ์๋ ๊ณณ์ ์๊ฐ์ ๋๊ณ PR์ ์ ์ถํ์ธ์.
์๋ ํ์ธ์ @idvorkin ์ ๋๋ค .
๋๋ ํ ๋ฒ ์๋ํ๋ค.
์ฌ์ํ ์์ ์ฌํญ์ ๋ณํฉํ๋ ๋ฐ ๋ช ์ฃผ๊ฐ ๊ฑธ๋ ธ์ต๋๋ค.
ํ ๋ก ์ ์์ ์ค์ ์์ ํฌ๊ธฐ์ ๋น๊ตํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
์ด ํ๋ก์ ํธ์ ๋ ์ด์ ์์ ์ฌํญ์ ์ ์ถํ๊ณ ์ถ์ง ์์ต๋๋ค.
๋ฐ๋ผ์ ๊ทํ์ ์กฐ์ธ์ ๊ทํ๊ฐ ์๊ฐํ๋ ๊ฒ๋งํผ ์คํ ๊ฐ๋ฅํ์ง ์์ต๋๋ค.
๋ง์ ์ฌ์ฉ์๋ฅผ ๋์ ํ์ฌ @Jamim (๊ด๋ฆฌ์๋ ์์ฌ๋จ), ๊ธฐ์ฌํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋๋ ๋น์ ์ PR์ ์ฝ์๊ณ ๊ทธ ์ข์ ์ ๊ณต๊ฐํ ์ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ด๊ฒ ์ ๋ํด
๋ฌผ๋ก ์ฐ๋ฆฌ๋ ์ฐ๋ฆฌ๊ฐ ์ ์ง ๊ด๋ฆฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ๊ด์ฌ์ ๊ฐ๊ณ ์์ง๋ง ๊ธ์ ์ ์ธ ์ํธ ์์ฉ์ ํ๋ ๊ฐ์ฅ ํจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ์ ๊ตฌ๋ฌธ์ด ์๋ ์ ์์ต๋๋ค.
๋๋ ๊ด๋ฆฌ์๋ฅผ ๋ง๋ ์ ์ด ์์ง๋ง, ๊ทธ๋ค์ด ๋์ ๊ฐ๋ค๋ฉด(๊ทธ๋ฆฌ๊ณ ์๋ง๋ ๋น์ ๋ ๋ง์ฐฌ๊ฐ์ง์ผ ๊ฒ์ ๋๋ค) ๊ทธ๋ค์ ์ด ํ๋ก์ ํธ์ ์ธ ์๋์ง๊ฐ ์๊ธฐ๋ ์ ์ ์ฝ์์ผ๋ก ๊ฐ๋ ์ฐฌ ๋ฐ์ ์ถ์ ์ฌ๋ ์ฌ๋๋ค์ ๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก, ๋น์ (๋๋ ๋ค๋ฅธ ๋๊ตฐ๊ฐ)์ด ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์์ ํ๋ค๋ฉด, ๋น์ ์ด ๊ทธ๊ฒ์ ๊ฐ๋ฐ, ํ ์คํธ, ๋ณํฉํ๋ ๋ฐ ๋์์ ์ค ๋ง์ ์ฌ๋๋ค์ด ์์ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. .
๋๋ ์ด ํ๋ก์ ํธ์ ๊ฐ๋ฐ์๋ค์ด ์ด๊ฒ์ ์๊ฐ์ ํ ์ ํด์ค์ ๊ณ ๋ง์ง๋ง, ์ด ํ๋ก์ ํธ๊ฐ README.md
์ ์ฌ์ฉ์ ํ๊ฐ ๋ฐ๋ก ์์ ์์ง ํ๋ก๋์
์ค๋น๊ฐ ๋์ง ์์๋ค๋ ๊ฒ์ ๊ตต๊ฒ ๊ฒฝ๊ณ ํด์ผ ํ๋ค๊ณ ์ ์ํฉ๋๋ค. ์ฌ๋๋ค์ด ์ด ๋๋ฆฐ ์ ๊ธ์ ๋ํด ์์๋ด๊ณ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ์ดํดํ ๋๊น์ง ํ์ฌ pip/virtualenv ์คํ์ pipenv๋ก ๊ต์ฒดํ๋ ๋ฐ ๊ท์คํ ์๊ฐ์ ์๋นํ๋๋ก ์ค๋ํฉ๋๋ค.
๊ทธ๋ค์ด ์ด ๋๋ฆฐ ์ ๊ธ์ ๋ํด ์์๋ด๊ณ ๊ทธ๊ฒ์ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ์ดํดํ ๋๊น์ง.
์ค์ ๋ก ๋งค์ฐ ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ ์๋๋ฅผ ๋์ด๊ฒ ๋์ด ๋งค์ฐ ๊ธฐ์ฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ฌํ ๊ณผ์ฅ๋ฒ์ ํ์ํ์ง ์์ต๋๋ค.
๋๋ ๋งค์ผ pipenv๋ฅผ ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ ๊ณตํ๋ ์ํฌํ๋ก ๊ฐ์ ์ฌํญ์ ๊ฐ๋ ๋ฐ์ํ๋ ์๋๋ณด๋ค ํจ์ฌ ๋ ์ค์ํฉ๋๋ค. ์ ๊ธ์ ์๋ฅผ ๋ค์ด ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ๊ฒ๊ณผ๋ ๋ฌ๋ฆฌ ์ ๊ฐ ํญ์ ํ๋ ๊ฒ์ด ์๋๋๋ค.
์ผ๋ง๋ ์์ฃผ ๋น์ ์ด ๊ทธ๊ฒ์ ์ฌ์ฉํ ์ ์๋ค๊ณ ๋๋ผ๋ ๊ทธ๋ฌํ ๋ฌธ์ ๊ฐ ์ค์ ๋ก ๋ฐ์ํ๋๋ก ์ ๊ทธ๊ณ ์์ต๋๊น? :open_mouth:
@bochecha ๋ด ์ง์ ์ ๋น์ ์ ์๊ฒฌ์ผ๋ก๋ ๊ณผ์ฅ๋ ์ ์์ง๋ง ๋ด ๊ฒฝํ์ ๊ธฐ๋ฐ์ผ๋ก ํ ์ฌ์ค์
๋๋ค. ์ผ๋ถ ๋๋ฃ๋ก๋ถํฐ pipenv์ ๋ํด ๋ค์์ต๋๋ค. ์ค๋ ๋๋ ์ค๋๋ ํ๋ก์ ํธ๋ฅผ ์
๋ฐ์ดํธํ๊ณ ์ข
์์ฑ์ ์
๋ฐ์ดํธํ๋ ค๊ณ ํ์ต๋๋ค. pip/virtualenv์์ ์
๋ฐ์ดํธ ํ ์ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ์
๋ฐ์ดํธ ํ๋ก์ธ์ค์ ์ผ๋ถ๋ก pipenv. ์ข
์์ฑ์ ์
๋ฐ์ดํธํ๊ณ ์๋ ๋ฐฉ์์ ํ์ธํ๊ณ ํ์ํ ๊ฒฝ์ฐ ์ฝ๋ ์ผ๋ถ๋ฅผ ์
๋ฐ์ดํธํ ๋ค์ ๋ค๋ฅธ ์ข
์์ฑ์ ์
๋ฐ์ดํธํด์ผ ํ์ต๋๋ค. pipenv install <something>
์คํํ ๋๋ง๋ค ์์ฒญ๋๊ฒ ์ค๋ ์๊ฐ์ ๊ธฐ๋ค๋ ค์ผ ํ์ต๋๋ค. ์ฒ์์๋ ๊ณ์ฐ ์ค์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ์์ฐ ์ค๋น ํจํค์ง ๊ด๋ฆฌ์๋ผ๊ณ ์ฃผ์ฅํ๋ ๊ฒ์ด ๋ฌธ์ ๋ผ๋ ๊ฒ์ ๋ฏฟ์ ์ ์์๊ธฐ ๋๋ฌธ์ ๋ฏธ๋๋ฅผ ์ํด ์บ์ํ ๊ฒ์
๋๋ค. ~10๋ฒ์งธ ํจํค์ง๋ฅผ ์ค์นํ ํ ๊ฒ์์ ์์ํ๊ณ ์ด ์ค๋ ๋๋ฅผ ์ฐพ์์ต๋๋ค. Pipfile
๋ฐ Pipfile.lock
ํ๊ณ pip/virtualenv ์ํฌํ๋ก๋ก ๋์๊ฐ์ต๋๋ค. ์๋ฅผ ์จ๋ณด๊ณ ์ถ์์ง๋ง ํ ์๊ฐ๋ ๋ ๊ฑธ์ ์๋ ์์์ต๋๋ค.
์ด๊ฒ์ ์๋ฅผ ๋ค์ด JS ์ปค๋ฎค๋ํฐ์์ ๋ฐ์ํ์ง๋ง Python ์ปค๋ฎค๋ํฐ์์๋ ์์ํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ ์ปค๋ฎค๋ํฐ์๋ ์ด๋ฌํ ์ข
๋ฅ์ ๋ฌธ์ ๊ฐ ์์ผ๋ฉฐ ์ฐ๋ฆฌ๋ ์ด๋ฅผ ํผํ๋ ค๊ณ ๋
ธ๋ ฅํด์ผ ํฉ๋๋ค. README.md
์ ๋ฉด์ฑ
์กฐํญ์ ํผํ ์ ์์ต๋๋ค. ์ด ๋ถํธํจ์ ๋ด ์๊ฒฌ์ ์ ์ํ์ต๋๋ค. ์ค๋ ์ ์๊ฐ์ ์ ์ฝํ ์ ์๊ณ ๋ค๋ฅธ ์ ๊ท ์ด๋ฏผ์์ ์๊ฐ์ ์ ์ฝํ ์ ์์ผ๋ฉฐ ์ด ํ๋ก์ ํธ์ ๋ํด ๋์ ๊ฒฝํ์ ํ์ง ์์ ๊ฒ์ด๋ฏ๋ก ์ ์ฌ์ ์ธ ๋ฏธ๋ ์ฌ์ฉ์๋ก ๋จ์ ์ ์์ต๋๋ค.
๋๋ sassanh์ ์ด๋ ์ ๋ ๋์ํฉ๋๋ค. ๋ชจ๋ ์ฌ๋์ด ์ด ๋ฌธ์ ์ ๋๋ฑํ๊ฒ ์ํฅ์ ๋ฐ๋ ๊ฒ์ ์๋์ง๋ง ์ฐ๋ฆฌ ์ค ์ผ๋ถ๋ ๊ฝค ์ฌํ๊ฒ ์ํฅ์ ๋ฐ์์ต๋๋ค. ์ ๋ ์์ ํ ์๋ํ์ง ์๊ฑฐ๋ ํ๋ก๋์ ์ค๋น๊ฐ ๋์ง ์์ ์คํ ์์ค ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์์ต๋๋ค. ๊ทธ๋ฐ ๊ฒฝ์ฐ์ ๋ฉด์ฑ ์กฐํญ์ ๋ฃ์ด ์ฌ๋๋ค์ด ๋ฌธ์ ์ ๋ํ ์ค๋น๊ฐ ๋์ง ์์ ๊ฒฝ์ฐ ์๊ฐ์ ๋ญ๋นํ์ง ์์ต๋๋ค.
๋๋ ์ด ํ๋ก์ ํธ์ ์ฐธ์ฌํ๋ ์ฌ๋๋ค์๊ฒ ํ๋ฅผ ๋ด์ง๋ ์์ง๋ง ๋ฉด์ฑ ์กฐํญ์ด ์๋ ํ๋ฅญํ ๋๊ตฌ๋ก ํ๋งคํ์ฌ ์ด์ ๋ํด ๊ณต๊ฐ์ ์ผ๋ก ์ด์ผ๊ธฐํ ์ฌ๋์๊ฒ ํ๋ฅผ ๋์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋๋ ์ฅ๊ธฐ์ ์ผ๋ก ์๊ฐ์ ์ ์ฝํ๊ธฐ ์ํด ๋๊ตฌ๋ฅผ ์๋์ํค๋ ๋ฐ ๋ด ์์คํ ์๊ฐ์ ๊ฝค ๋ง์ด ๋ญ๋นํ์ง๋ง pipenv๊ฐ ์๋ํ์ง ์์๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ตญ pip์ ๋ด ์์ ์ ์คํฌ๋ฆฝํธ๋ก ๋์๊ฐ์ผ ํ์ต๋๋ค. ๋ด ์๊ฐ๊ณผ ๋์ญํญ์ด ์ ํ๋ ํ๊ฒฝ์์.
pipenv install์ ์คํํ ๋๋ง๋ค
๊ธฐ์กด ํ๋ก์ ํธ์์ pipenv๋ก ์ฎ๊ธฐ๋ ค๊ณ ํ ๋ ํ ๋ฒ๋ง ์ ๊ทธ๊ฑฐ๋ ์ค์นํ๋ pipenv install -r requirements.txt
์ ๋ํด ์๊ณ ๊ณ์
จ์ต๋๊น? ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ฌธ์ ์ค ํ๋์ผ ์ ์์ต๋๊น?
๋ฌด์๋ณด๋ค pipenv๊ฐ pip/virtualenv ์ํฌํ๋ก์ ์ข์ ๋์ฒดํ์ด ๋ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๋ ๊ทธ๊ฒ์ด ํ์ํ๋ค๋ ๊ฒ์ ์๊ณ ์๊ณ pipenv๊ฐ ํ๋ก๋์ ์ค๋น๊ฐ ๋๋ ๋ ๋ง์ ์ฌ๋๋ค/ํ๋ก์ ํธ์ ํฐ ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@bochecha ๋ด๊ฐ ์ค๋ช
ํ ๋๋ก ์ต์ ๋ฒ์ ์ ํจํค์ง๋ฅผ ์ค์นํ๊ณ ๋ช ๊ฐ์ง ์์
์ ์ํํ ๋ค์ ๋ค์ ํจํค์ง๋ก ์ด๋ํด์ผ ํฉ๋๋ค. ์๋ง๋ pip๋ก ์ด ํ๋ก์ธ์ค๋ฅผ ์ํํ ๋ค์ pipenv๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ๋ฉด ๋ฌธ์ ๋ฅผ ์ ํ ๋์น์ฑ์ง ๋ชปํ ๊ฒ์
๋๋ค. ํ์ง๋ง ๋จผ์ pipenv๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ ๋ค์ ํจํค์ง ์
๋ฐ์ดํธ๋ฅผ ํ๋์ฉ ์ํํ๋๋ฐ ์ ๋ง ์ง์ฆ์ด ๋ฌ์ต๋๋ค. ๊ทํ์ ์ฌ์ฉ ์ฌ๋ก์์ ์๋ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ์ ๊ฐ์ ๋ง์ ์ฌ๋๋ค์๊ฒ๋ ์๋ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค(์์ ์ค๋ช
์ฐธ์กฐ). README.md
์ ์ธ๊ธ๋์ด์ผ ํฉ๋๋ค. ์ต์ํ "๊ฐ ์ ๊ธ์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ์ ์์ผ๋ฏ๋ก ์ฌ์ฉ ์ฌ๋ก์ ๋ง์ ํจํค์ง๋ฅผ ๋น ๋ฅด๊ฒ ์ค์น/์ ๊ฑฐํ๋ ๊ฒ์ด ํฌํจ๋๋ ๊ฒฝ์ฐ ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ๋๊น์ง pipenv๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ํด๊ฒฐ๋จ"(๋ค์ ๊ตต๊ฒ, ํ๊ธฐ ์๋จ) ๋๊ตฐ๊ฐ๊ฐ ์ํฅ์ ๋ฐ๊ธฐ ์ ์ ๋ฌธ์ ๋ฅผ ๋ฐํํ๋ฉด ๋ชจ๋๊ฐ ๊ฐ์ฌํ ๊ฒ์ด๊ณ , ๋ฌธ์ ๊ฐ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ์ํฅ์ ๋ฏธ์น๊ณ ๊ฒฝ๊ณ ํ์ง ์์ผ๋ฉด ๋ชจ๋๊ฐ ํ๋ฅผ ๋ผ ๊ฒ์
๋๋ค.
๋์. ๋๋ ์๋ฅผ ์กฐ์ฌํ๊ธฐ ์์ํ๊ณ pipenv๋ฅผ ๋ค์ ์ฌ์ฉํ๋ ๋์ ํ๋ก์ ํธ๋ณ๋ก ๋ด OS์ ๋ค๋ฅธ ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํ์ง๋ง. ๊ธฐ๋ณธ ์ค์ ์ผ๋ก ์บ์ฃผ์ผํ ์ฌ์ฉ ์ฌ๋ก์์ ์ ๋๋ก ์๋ํ์ง ์์ผ๋ฉด imho ๊ฐ ์์๋์์ต๋๋ค.
๋งค์ฐ ์ ์ฉํ ๋๊ตฌ์
๋๋ค! ๋์๊ฒ ๊ทธ๊ฒ์ ๋งค์ฐ ์ธ๋ชจ ์๊ฒ ๋ง๋๋ ๊ฒ์ ๋จ์ง ์ด๊ฒ ํ๋๋ฟ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌํ๊ฒ๋ ๊ธฐ์ฌํ ์๊ฐ์ด ๊ฑฐ์ ์์ต๋๋ค :|
๋ฌผ๋ก , ๊ฐ๋ฐ ์ธ์ ์ค ์ฌ๋ฌ ์ค์น๋ฅผ ์ํํด์ผ ํ ๋ ์ ๊ธ์ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ ์ฑ๊ฐ์ ์ผ์ด์ง๋ง ์ด๊ฒ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
์ค์ํ ๊ฒ์ ๋ก์ปฌ ๋ณ๊ฒฝ ์ฌํญ์ repo์ ํธ์ํ๊ธฐ ์ ์ ์ ๊ธ ํ์ผ์ด ์์ฑ๋๋ค๋ ๊ฒ์
๋๋ค. ๋๋ ๊ฐ๋ฐ ์ธ์
์ค์ โskip-lock
ํ๋๊ทธ๋ฅผ ์ ์คํ๊ฒ ์ฌ์ฉํ๊ณ ์ปค๋ฐํ๊ธฐ ์ ์ ๋ง์ง๋ง์ pipenv lock
ํ ๋ฒ ์ฌ์ฉํฉ๋๋ค.
ํ๋ก์ ํธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ํ์ง๋ง,
์ ๊ทธ๋ ๊ฒ์ verrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrywwwwwwwwwwwwwwwwwwwwwwwwwwww.
PIP_NO_CACHE_DIR=off
์ด ํ๊ฒฝ์ pip ํจํค์ง ์บ์๊ฐ ์ด๋ฏธ ์ค์น๋ ๊ฒฝ์ฐ ์ ๊ธ์ ๋ ๋น ๋ฅด๊ฒ ๋ง๋ญ๋๋ค.
์๋ ํ์ธ์ @yssource ์ ์ฌ๋ฌ๋ถ,
ํ๋ก์ ํธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ํ์ง๋ง,
์ ๊ทธ๋ ๊ฒ์ verrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrywwwwwwwwwwwwwwwwwwwwwwwwwwww.
์ด ํ๋ก์ ํธ๋ ์ฃฝ์ ๊ฒ ๊ฐ์ผ๋ฏ๋ก ์๋ ๋ฌธ์ ๋ฅผ ์ ๊ฑฐํ๋ ค๋ฉด ํจ์ฌ ๋ ๋น ๋ฅธ Poetry ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค.
@Jamim , Poetry๋ฅผ ์ถ์ฒํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ด๋ค ์ด์ ๋ก ๋๋ ๊ทธ๊ฒ์ ์ ํ์ง ๋ชปํ์ต๋๋ค. ์ฝ์ด๋ณด๊ธฐ๋ฅผ ์ฝ์ ํ์ ์๋ํด ๋ณผ ๊ฐ์น๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. Pipenv์ ๋ํ ๋ช ๊ฐ์ง ์ด์ ๋ ๋์ดํฉ๋๋ค(https://github.com/sdispater/poetry/#what-about-pipenv).
๊ทธ๋ ๊ธด ํ์ง๋ง, ํ๋ก์ ํธ๊ฐ ์ฃฝ์๋ค๋ ๊ฒ์ ๋๋ฌด ๊ณผ์ฅ๋ ํํ์ด๋ฉฐ, ๋ด๊ฐ pipenv ์์ฑ์์ ์ ์ฅ์ด๋ผ๋ฉด ๋ฌด๋กํ๋ค๋ ๊ฒ์ ์๊ฒ ๋ ๊ฒ์ ๋๋ค. ์์ฑ์๋ ์ด์ ๋ฌธ์ ์น์ ์์ ๋ต๋ณํ์ต๋๋ค. ์ด ์ ๊ธ ๋ฌธ์ ๊ฐ ๊ฐ๊ณผ๋๊ณ ์๋ ๊ฒ์ ์๋ง๋ ํด๊ฒฐํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ผ ๊ฒ์ ๋๋ค.
๊ธฐ๋ก์ ์ํด Poetry๋ ์ฑ๋ฅ ๋ฌธ์ ๋ ๊ฒช๊ณ ์์ต๋๋ค.
https://github.com/sdispater/poetry/issues/338
๋ด ๋ชจ๋ ํ๋ก์ ํธ์์ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์์ธ์ pylint์ธ ๊ฒ ๊ฐ์ต๋๋ค.
Pipenv(pip)๋ ์ฑ๊ณต์ ์ผ๋ก ์ค์นํ ์ ์์ง๋ง ์ ๊ธ์ ์์ํ ๊ฑธ๋ฆฝ๋๋ค!
pipenv, version 2018.11.26
์ต์ํ์ ์์
์
djbrown@DESKTOP-65P6D75:~$ mkdir test
djbrown@DESKTOP-65P6D75:~$ cd test
djbrown@DESKTOP-65P6D75:~/test$ pipenv install --dev pylint --verbose
Creating a virtualenv for this projectโฆ
Pipfile: /home/djbrown/test/Pipfile
Using /usr/bin/python3 (3.6.9) to create virtualenvโฆ
โ ธ Creating virtual environment...Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/djbrown/.local/share/virtualenvs/test-PW-auWy_/bin/python3
Also creating executable in /home/djbrown/.local/share/virtualenvs/test-PW-auWy_/bin/python
Installing setuptools, pip, wheel...done.
โ Successfully created virtual environment!
Virtualenv location: /home/djbrown/.local/share/virtualenvs/test-PW-auWy_
Creating a Pipfile for this projectโฆ
Installing pylintโฆ
โ Installing...Installing 'pylint'
$ ['/home/djbrown/.local/share/virtualenvs/test-PW-auWy_/bin/pip', 'install', '--verbose', '--upgrade', 'pylint', '-i', 'https://pypi.org/simple']
Adding pylint to Pipfile's [dev-packages]โฆ
โ Installation Succeeded
Pipfile.lock not found, creatingโฆ
Locking [dev-packages] dependenciesโฆ
โ Locking...
pipenv ์ ๋ํด ๋ง์ด ๋ฃ๊ณ ์ค๋ ํด๋ดค๋๋ฐ,
์ ๊ธ๋ ๋์๊ฒ ๋งค์ฐ ๋๋ฆฝ๋๋ค. ์ด๋ฏธ 2๋ถ ์ ๋ ์ง๋ฌ๋๋ฐ ์ฌ์ ํ ์ ๊น ์ํ์
๋๋ค.
๋ค์ด๋ก๋๋ ๊ฝค ๋น ๋ฅด์ง๋ง ๋ฌธ์ ๋ ์ ๊ธ์
๋๋ค.
์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๊น?
apt, python 3.7.5์ Pop os 19.10, pipenv, ๋ฒ์ 11.9.0์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๋์ผํ ์ฃผ์ https://github.com/pypa/pipenv/issues/1914#issuecomment -457965038์ ๋ํ #1914์ ์ด ํ๋ฅญํ ์๊ฒฌ์ ์ฃผ๋ชฉํ๊ณ ์ถ์ต๋๋ค. ์ด๋ ๊ฐ ์ข ์์ฑ์ ๋ ์ด์ ๋ค์ด๋ก๋ํ๊ณ ์คํํ ํ์๊ฐ ์์์ ์์ฌํฉ๋๋ค.
์ด๋ค ๊ฐ๋ฐ์๊ฐ ์ด ์ ๊ทผ ๋ฐฉ์์ ํ๋น์ฑ์ ๋ํด ๋ ผํํ ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
ํ๊ฒฝ์ ์ ๊ฑฐํ๊ณ ์ ๊ธ ํ์ผ์ ์
๋ฐ์ดํธํ๊ธฐ ์ํด ์ฒ์๋ถํฐ ๋ค์ ๋ง๋๋ ๊ฒ์ด ์ค์ ๋ก ๋ ๋น ๋ฅด๋ค๋ ๊ฒ์ ์์์ต๋๋ค.
pipenv lock
๋ฐ pipenv install some-package
์คํ ๋ชจ๋์ ํด๋น๋ฉ๋๋ค.
๋๋ pipenv
์ ๋ง ์ข์ํ์ง๋ง ๋์ญํญ๊ณผ ์๊ฐ๋งํผ์ ์๋๋๋ค. ๊ทธ๋์ ๋๋ ๋ค์์ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
$ pipenv --rm
$ virtualenv .
$ source bin/activate
$ # Create a requirement file (Cause pipenv lock -r > requirements.txt... you know!)
$ pip install -r requirement.txt
๊ฐ๋ฐ์ ์ฌ๋ฌ๋ถ์ ๊ฑด์น์ ๋น๋๋ค...
@ravexina ์ ์ ๊ฐ์ฌํฉ๋๋ค, ํ์คํ ์๋ํ๊ฒ ์ต๋๋ค
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
lock
์ด ์ ๋ง ๋๋ฆฌ๊ณfiles.pythonhosted.org
์์scipy
flask
๋ฑ์ ์์กดํ๋ ์๊ท๋ชจ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ 800MB๊ฐ ๋๋ ์์ฒญ๋ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ก๋ํ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.๊ทธ๋์
files.pythonhosted.org
๋ํ ์์ฒญ์ ์ค๋ํํ๋๋ฐ pip ๋๋ pipenv๊ฐ ์์ ํ ๋ถํ์ํ ๋ค์ด๋ก๋๋ฅผ ์ํํ๊ณ ์์ดlock
๊ณ ํต์ค๋ฝ๊ฒ ๋๋ ค์ก์ต๋๋ค.์๋ฅผ ๋ค์ด, ๋์ผํ ๋ฒ์
numpy
์ด ์ ์ฒด๋ฅผ ์ฌ๋ฌ ๋ฒ ๋ค์ด๋ก๋ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Mac์ ์ฌ์ฉํ๊ณ ์์์ง๋ง Windows/Linux์ฉ ํ ์ ๋ค์ด๋ก๋ํ์ต๋๋ค.๋ด ์ค์ :