Pipenv: Python์„ 3.7๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„ ๋ฌธ์ œ

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

๋ฌธ์ œ ์„ค๋ช…

๋‚œ ๋งฅ์—์žˆ์–ด ์„ค์น˜ pre-commit ์‚ฌ์šฉํ•˜์—ฌ brew ์‹ฌ์ง€์–ด์ด 3.7 ํŒŒ์ด์ฌ 3.6.5์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ์žˆ์–ด ๋ฌป์ง€ ์•Š๊ณ . (3.6.5๋„ brew ์˜ ํ†ต์ œ ํ•˜์— ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค)

์ด์ œ pipenv๊ฐ€ "๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋กœ๋“œ๋˜์ง€ ์•Š์Œ" ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

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

Pipenv๋Š” Python ์—…๊ทธ๋ ˆ์ด๋“œ ์ „๊ณผ ๊ฐ™์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ๊ฒฐ๊ณผ
$ pipenv -h
dyld: Library not loaded: @executable_path/../.Python
  Referenced from: /usr/local/Cellar/pipenv/2018.5.18/libexec/bin/python3.6
  Reason: image not found
Abort trap: 6
์ฝ”๋ฉ˜ํŠธ
  1. ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋Œ€์‹  3.7์„ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ์ผ๋ถ€ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

  2. pipenv ์ด ๋” ๊ด€๋Œ€ํ•˜๊ณ  python3.6 ๋Œ€์‹  python3 ๋ฐ”์ด๋„ˆ๋ฆฌ์— ์˜์กดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

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

์•„์น˜ ๋ฆฌ๋ˆ…์Šค๊ฐ€ 3.6.5์—์„œ 3.7๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋œ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ pipenv๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•  ๋•Œ๋งˆ๋‹ค ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ์•ฝ๊ฐ„์˜ ์ถ”์•…ํ•œ ํ•ดํ‚น์ž…๋‹ˆ๋‹ค. ๋จผ์ € pip๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  pipenv๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜๊ณ  pipenv๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์ €์žฅ์†Œ์— ๋Œ€ํ•ด ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์ง€์šฐ๊ณ  ๋‹ค์‹œ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋‚˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ์„ ํ•œ๋‹ค.

rm -rf `pipenv --venv`
pipenv install --dev

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ์ผ์„ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ : Pipfile์˜ ์š”๊ตฌ ์‚ฌํ•ญ๋„ python 3.6์—์„œ 3.7๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋” ๊ฐ•๋ ฅํ•œ ์†”๋ฃจ์…˜์ด ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค...

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

์•„์น˜ ๋ฆฌ๋ˆ…์Šค๊ฐ€ 3.6.5์—์„œ 3.7๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋œ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ pipenv๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•  ๋•Œ๋งˆ๋‹ค ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ์•ฝ๊ฐ„์˜ ์ถ”์•…ํ•œ ํ•ดํ‚น์ž…๋‹ˆ๋‹ค. ๋จผ์ € pip๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  pipenv๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜๊ณ  pipenv๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์ €์žฅ์†Œ์— ๋Œ€ํ•ด ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์ง€์šฐ๊ณ  ๋‹ค์‹œ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋‚˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ์„ ํ•œ๋‹ค.

rm -rf `pipenv --venv`
pipenv install --dev

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ์ผ์„ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ : Pipfile์˜ ์š”๊ตฌ ์‚ฌํ•ญ๋„ python 3.6์—์„œ 3.7๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋” ๊ฐ•๋ ฅํ•œ ์†”๋ฃจ์…˜์ด ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค...

์ด๋Š” Homebrew๊ฐ€ Python์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Pipenv(๋˜๋Š” ๋ชจ๋“  Python ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)๊ฐ€ ์ด์— ๋Œ€ํ•ด ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋ ค๋ฉด Homebrew Python์— ์„ค์น˜ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์žฌ์„ค์น˜๊ฐ€ ์œ ์ผํ•œ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

๋ฉฐ์น  ์ „์— ๋น„์Šทํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ–ˆ์ง€๋งŒ ํ˜„์žฌ๋Š” ์ฐพ์„ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

@uranusjr ๊ทธ๋ž˜๋„ ๋ฌธ์„œ์—์„œ ๊ถŒ์žฅ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

์˜ˆ, ๊ทธ๋ž˜์„œ?

Homebrew ์„ค์น˜๋Š” ์ผ์ข…์˜ ๋ณต์žกํ•˜๊ณ  ์šฐ๋ฆฌ๊ฐ€ ํ†ต์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์•ฝ๊ฐ„์˜ ์œ„ํ—˜์„ ๊ฐ์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ €ํฌ ์ค‘ ๋ˆ„๊ตฌ๋„ Mac์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ด์— ๋Œ€ํ•ด ๋งŽ์€ ํ†ต์ฐฐ๋ ฅ์„ ์ œ๊ณตํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค).

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ๊ฒƒ์€
brew uninstall mkcert

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ๊ฒƒ์€ ๋ชจ๋“  envs: rm -rf /Users/william/.local/share/virtualenvs/* ๋ฅผ ํ•ต ์ œ๊ฑฐํ•˜๊ณ  pipenv install envs๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@omrihar ์™œ --dev ํ”Œ๋ž˜๊ทธ์ธ๊ฐ€์š”? ๋ฌธ์„œ์—๋Š” "๊ฐœ๋ฐœ ํŒจํ‚ค์ง€์™€ ๊ธฐ๋ณธ ํŒจํ‚ค์ง€๋ฅผ ๋ชจ๋‘ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค."๋ผ๊ณ  ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋กœ์ปฌ ํŒจํ‚ค์ง€ ์„ค์น˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ(์˜ˆ: python setup.py development)?

ํŽธ์ง‘: brew-installed pipenv(2018.11.26_2) w/ python3.7 ์‚ฌ์šฉ. ์„ค์น˜ ์ž ๊ธˆ ๋‹จ๊ณ„์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: Locking Failed! ๋˜๋Š” Locking

์šฐ๋ฆฌ์—๊ฒŒ ๋„์›€์ด ๋œ ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

$ brew uninstall pipenv
$ brew install python3.6
$ pip3 install --user pipenv
$ mkdir -p ~/bin
$ ln -s ../Library/Python/3.6/bin/pipenv ~/bin/

์•„์ง ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ~/.bash_profile์˜ PATH ํ–‰์„ ํŽธ์ง‘ํ•˜์—ฌ ~/bin/์„ PATH์— ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

...
PATH=/Users/{your_username}/bin:{the_content_that_was_there_before}
...

์‰˜์„ ๋‹ซ๊ณ  ์—ฌ๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๋ฌธ์„œ ์— ๋”ฐ๋ผ ์‹คํ–‰ํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

brew upgrade pipenv

OSX ๋ฒ„์ „์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„์—๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

homebrew ์„ค์น˜๋ฅผ ์ œ๊ฑฐํ•œ ๋‹ค์Œ "Pragmatic Installation" ์ง€์นจ์— ๋”ฐ๋ผ ํ•ด๊ฒฐ :

pip install --user pipenv

์ง€์นจ์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž ๊ธฐ๋ฐ˜์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ PATH์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ ๋ฌด์—‡์„ ์ œ๊ฑฐํ•ด์•ผ ํ•˜๋Š”์ง€, ์–ด๋–ป๊ฒŒ ์ œ๊ฑฐํ•ด์•ผ ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.
pipenv ์„ค์น˜๋ฅผ ์‹œ๋„ํ–ˆ๋Š”๋ฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์–‘์กฐ ๋กœ๊ทธ๋ฅผ ๋ณด๋ฉด AFAIK๊ฐ€ ์ด์ „์— ์„ค์น˜๋˜์ง€ ์•Š์€ python3.8์ด ์„ค์น˜๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(3.7 ์‚ฌ์šฉ).

์ œ๊ฑฐ์— ๋…ธ๋ ฅ [email protected] ๊ฒƒ์€ awscli ๊ทธ๊ฒƒ์ด ์ „์— ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ดํ•ด๊ฐ€๋˜์ง€ ์•Š๋Š”, ๊ทธ๊ฒƒ์— ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ผ์„ํ•˜์ง€ ์•Š์•˜๋‹ค ...

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฌด์—‡์„ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?
~/Library/Logs/Homebrew์˜ ์œ ์ผํ•œ ๋กœ๊ทธ๋Š” ์„ค์น˜ ์‹œ์ ๋ถ€ํ„ฐ [email protected] ์ž…๋‹ˆ๋‹ค.
์ œ๊ฑฐํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๊ตฐ์š”. ๋งž๋‚˜์š”? (์•„๋งˆ๋„ awscli๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์—ˆ๊ฑฐ๋‚˜ ๋ญ”๊ฐ€ ...)

๋‹น์‹ ์˜ ๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ์ด์ฌ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”

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