Pip: pyenv์—์„œ pip 10 ์—…๊ทธ๋ ˆ์ด๋“œ ํ›„ "ImportError: 'main' ์ด๋ฆ„์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค"

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

๊ด€๋ฆฌ์ž ์ฐธ๊ณ  ์‚ฌํ•ญ: ์—ฌ์ „ํžˆ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์‚ฌ๋žŒ์€ #5599๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.


  • ํ• ๋ฒ„์ „: 10.0
  • ํŒŒ์ด์ฌ ๋ฒ„์ „: 3.6.2
  • ์šด์˜ ์ฒด์ œ: ์šฐ๋ถ„ํˆฌ 16.04

์„ค๋ช…:

pyenv ํ™˜๊ฒฝ์—์„œ pip install pip --user --upgrade ๋ฅผ ํ†ตํ•ด pip๋ฅผ 9.03์—์„œ 10.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„ pip๋Š” ์‹œ์ž‘์„ ๊ฑฐ๋ถ€ํ•˜๊ณ  ๋Œ€์‹  ๋‹ค์Œ์„ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

Traceback (most recent call last):
  File "/home/kleinernull/.pyenv/versions/3.6.2/bin/pip", line 7, in <module>
    from pip import main
ImportError: cannot import name 'main'
Traceback (most recent call last):
  File "/home/kleinernull/.pyenv/versions/3.6.2/bin/pip", line 7, in <module>
    from pip import main
ImportError: cannot import name 'main'

์„ธ ๊ฐ€์ง€ ๋‹ค๋ฅธ pip ํŒŒ์ผ์˜ ๋‚ด์šฉ์€ ๋ชจ๋‘ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

~ โŸฉ cat .pyenv/versions/3.6.2/bin/pip                                                                            ~
#!/home/kleinernull/.pyenv/versions/3.6.2/bin/python3.6

# -*- coding: utf-8 -*-
import re
import sys

from pip._internal import main as _main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(_main())

~ โŸฉ cat .pyenv/versions/3.6.2/bin/pip3                                                                           ~
#!/home/kleinernull/.pyenv/versions/3.6.2/bin/python3.6


# -*- coding: utf-8 -*-
import re
import sys

from pip import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

~ โŸฉ cat .pyenv/versions/3.6.2/bin/pip3.6                                                                         ~
#!/home/kleinernull/.pyenv/versions/3.6.2/bin/python3.6

# -*- coding: utf-8 -*-
import re
import sys

from pip import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

๋‚ด 3.6.1 ํ™˜๊ฒฝ์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์˜€์Šต๋‹ˆ๋‹ค.

์ž„์‹œ ์ˆ˜์ •

๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์˜ ์ฝ”๋“œ์— ๋”ฐ๋ฅด๋ฉด ๊ฐ€์ ธ์˜ค๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

#!/home/kleinernull/.pyenv/versions/3.6.2/bin/python3.6

# -*- coding: utf-8 -*-
import re
import sys

from pip._internal import main as _main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(_main())

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์—…๊ทธ๋ ˆ์ด๋“œ ์ž์ฒด ๋˜๋Š” ํ™˜๊ฒฝ์œผ๋กœ์„œ์˜ pyenv์™€ ๊ด€๋ จ์ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋Š” ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

duplicate

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

์šฐ๋ฆฌ๋ฅผ ์œ„ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์€ pip 9.03์— ๊ณ ์ •๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

pip install --upgrade pip==9.0.3

๋Œ€์‹ ์—

pip install -U pip

๋ช…๋ฐฑํ•œ ์ˆ˜์ •์ด์ง€๋งŒ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์„ ๋„์šธ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ!

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

์•ˆ๋…•ํ•˜์„ธ์š” @KleinerNull!

์ด๊ฒƒ์ด ์—…๊ทธ๋ ˆ์ด๋“œ ์ž์ฒด ๋˜๋Š” ํ™˜๊ฒฝ์œผ๋กœ์„œ์˜ pyenv์™€ ๊ด€๋ จ์ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋Š” ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ํ™˜๊ฒฝ์˜ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. pyenv์—์„œ ๋ฌธ์ œ๋ฅผ ์—ฌ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์— ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์ด ์ด์— ๋Œ€ํ•ด ๋…ผํ‰/๊ณ ์น  ์ˆ˜ ์žˆ๋Š” ๋” ๋‚˜์€ ์œ„์น˜์— ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@pradyunsg

pyenv repo์—์„œ ๋ฌธ์ œ ๋ฅผ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋„ ์ด ๋ฌธ์ œ๋กœ ๊ณ ํ†ต๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ดํ”„๋ผ์ธ์ด ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‹คํ–‰ ์ค‘์ธ ์ž‘์—…:

 11 #upgrade pip and install uwsgi
 12 pip install --user --upgrade pip
 13 pip install uwsgi

์šฐ๋ถ„ํˆฌ 16.04
ํŒŒ์ด์ฌ3.6

์šฐ๋ฆฌ๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ•ด ์žˆ์Šต๋‹ˆ๋‹ค.

// in host
$ docker pull ubuntu:xenial
$ docker run --name pip-test --rm -it ubuntu:xenial bash

// in container
# apt update
# apt install -y python-dev python-pip
# pip install --upgrade pip
Collecting pip
  Downloading pip-10.0.0-py2.py3-none-any.whl (1.3MB)
    100% |################################| 1.3MB 865kB/s 
Installing collected packages: pip
  Found existing installation: pip 8.1.1
    Not uninstalling pip at /usr/lib/python2.7/dist-packages, outside environment /usr
Successfully installed pip-10.0.0
# pip install requests
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

์—ฌ๊ธฐ๋„ ๊ฐ™์Œ .. @HayaoSuzuki ์™€ ๋™์ผํ•œ ์ถœ๋ ฅ์ด๋ฉฐ pyenv๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

pyenv ์™ธ๋ถ€์—์„œ ์ด๊ฒƒ์„ ์–ป๋Š” ๊ฒฝ์šฐ #5221๊ณผ ๊ด€๋ จ์ด ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋” ๋†’๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Ubuntu 16.04์˜ pip install --user --upgrade pip ๋„ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค.

ํฅ๋ฏธ๋กญ๊ฒŒ๋„ ์‰ฌ์šด ์„ค์น˜ pip๋Š” 10.0.0์„ ์„ค์น˜ํ•˜์ง€๋งŒ ๋ฌธ์ œ๋ฅผ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
```
// ํ˜ธ์ŠคํŠธ์—์„œ
$ docker pull ์šฐ๋ถ„ํˆฌ:xenial
$ docker run --name pip-test --rm -it ์šฐ๋ถ„ํˆฌ:xenial bash

// ์ปจํ…Œ์ด๋„ˆ์—

์ ์ ˆํ•œ ์—…๋ฐ์ดํŠธ

์ ์ ˆํ•œ ์„ค์น˜ -y python-setuptools

easy_install pip

/usr/local/lib/python2.7/dist-packages/pip-10.0.0-py2.7.egg ์„ค์น˜
pip์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ ์ข…์†์„ฑ
pip์— ๋Œ€ํ•œ ์™„๋ฃŒ ์ฒ˜๋ฆฌ ์ข…์†์„ฑ

ํ• ์„ค์น˜ ์š”์ฒญ

์š”์ฒญ ์ˆ˜์ง‘
๋‹ค์šด๋กœ๋“œ ์š”์ฒญ-2.18.4-py2.py3-none-any.whl(88kB)
100% |##################################| 92kB 2.9MB/s
์ธ์ฆ์„œ ์ˆ˜์ง‘>=2017.4.17(์š”์ฒญ์—์„œ)
certifi-2018.1.18-py2.py3-none-any.whl(151kB) ๋‹ค์šด๋กœ๋“œ ์ค‘
100% |##################################| 153kB 4.4MB/s
์ˆ˜์ง‘ chardet<3.1.0,>=3.0.2(์š”์ฒญ์—์„œ)
chardet-3.0.4-py2.py3-none-any.whl(133kB) ๋‹ค์šด๋กœ๋“œ ์ค‘
100% |##################################| 143kB 4.5MB/s
idna<2.7,>=2.5 ์ˆ˜์ง‘ ์ค‘(์š”์ฒญ์—์„œ)
idna-2.6-py2.py3-none-any.whl ๋‹ค์šด๋กœ๋“œ(56kB)
100% |##################################| 61kB 7.4MB/s
urllib3<1.23,>=1.21.1 ์ˆ˜์ง‘(์š”์ฒญ์—์„œ)
urllib3-1.22-py2.py3-none-any.whl(132kB) ๋‹ค์šด๋กœ๋“œ
100% |##################################| 133kB 4.4MB/s
์ˆ˜์ง‘๋œ ํŒจํ‚ค์ง€ ์„ค์น˜: certifi, chardet, idna, urllib3, ์š”์ฒญ
certifi-2018.1.18 chardet-3.0.4 idna-2.6 requests-2.18.4 urllib3-1.22๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
```

๊ทธ pip๊ฐ€ ๋‹ค๋ฅธ ์œ„์น˜์— ์„ค์น˜๋˜์–ด ๋” ์ด์ƒ ์ „์—ญ pip์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋†€๋ผ์šด ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด๋Š” ๋˜ํ•œ ์ด์ œ Python์— ๋Œ€ํ•œ ๋งค์šฐ ํฅ๋ฏธ๋กœ์šด ์ž‘์—… ์„ธํŠธ๋ฅผ ๊ฐ–๊ฒŒ ๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์™€ https://github.com/pypa/pip/issues/5221 ์— ๋ณด๊ณ ๋œ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ œ๊ฐ€ ํ™˜๊ฒฝ์ด๋ผ๋Š” ์ ์— ๊ฐ์‚ฌํ•˜์ง€๋งŒ, ์›์ธ์€ ์ฃผ๋กœ from pip import main ๊ฐ€์ ธ์˜ค๊ธฐ๊ฐ€ $# ํŒจํ‚ค์ง€๋กœ ์†์ƒ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค pip.main ์ด(๊ฐ€) pip._internal.main (์œผ)๋กœ ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด pip.main ์—์„œ pip._internal.main ๋กœ ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค(ํ™˜๊ฒฝ์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์€ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์—ฌ๋Ÿฌ ์œ„์น˜์—์„œ ๋งŽ์€ ์ž‘์—…์ž…๋‹ˆ๋‹ค). ์ด๊ฑฐ ์•ˆํ•  ์ด์œ ๊ฐ€ ์žˆ๋‚˜์š”?

@davidjlloyd

์ด ์ฃผ์„์€ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด pip ์Šคํฌ๋ฆฝํŠธ ์ž์ฒด์—๋„ ์ค‘์š”ํ•œ์ง€ ์™„์ „ํžˆ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

@davidjlloyd from pip import main ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  "์˜ˆ, ํ•˜์ง€๋งŒ ๊ฐ„๋‹จํ•œ API์ด๊ณ  ์ œ๋Œ€๋กœ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ๋งํ•˜๊ธฐ๋Š” ์‰ฝ์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํŠน์ • ๋™์ž‘์„ ๊ธฐ๋Œ€ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๋กœ๋ถ€ํ„ฐ ์—ฌ๋Ÿฌ ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. pip.main ๊ฐ€ ๋กœ๊น… ์‹œ์Šคํ…œ์˜ ๊ตฌ์„ฑ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ์—์„œ pip.main ์‹คํ–‰, ...)

์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ด๋ ‡๊ฒŒ ํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๊ณ  ๊ณ„์† ์„ค๋ช…ํ•˜๊ณ  ์‚ฌ๋žŒ๋“ค์ด "ํ˜ธ์ถœํ•  ํ•จ์ˆ˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์œผ๋ฉด ์ง€์›๋ฉ๋‹ˆ๋‹ค"๋ผ๊ณ  ๊ฐ€์ •ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊ณ„์† ์ฒ˜๋ฆฌํ•˜๋Š” ๋Œ€์‹  ๋ชจ๋“  ๊ฒƒ์„ _internal ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์„ ํ˜ธ์ถœํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์ถฉ๋ถ„ํžˆ ๋ถ„๋ช…ํžˆ ํ•˜์‹ญ์‹œ์˜ค.

๋ถˆ๋งŒ์˜ ๋Œ€๋ถ€๋ถ„์€ pip.main ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๋กœ๋ถ€ํ„ฐ ์™”์Šต๋‹ˆ๋‹ค. ์•„์ด๋Ÿฌ๋‹ˆํ•˜๊ฒŒ๋„ subprocess ๋ฅผ ํ†ตํ•ด ์ง€์›๋˜๋Š” ๋ช…๋ น์ค„ ๋ฐฉ์‹์œผ๋กœ pip๋ฅผ ํ˜ธ์ถœ ํ•˜๊ธฐ ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ํŒŒ์† ์ค‘์—์„œ ์ด๊ฒƒ์ด ๊ฐ€์žฅ ๊ณ ์น˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ๋žŒ๋“ค์€ ๋ช‡ ๋‹ฌ ๋™์•ˆ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›์•˜์Œ์—๋„ ์—ฌ์ „ํžˆ ๊ณ ์น˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. (๋ฆฌ๋ˆ…์Šค ๋ฐฐํฌํŒ์— ๊ณตํ‰ํ•˜๊ธฐ๋Š” ํ•˜์ง€๋งŒ pip๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ ํŒจํ‚ค์ง€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ฐฐํฌํŒ์—์„œ ์ œ๊ณตํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ค‘๋‹จ๋˜๋Š” ๊ฒฝ์šฐ #5221๊ณผ ๊ฐ™์€ ๋ณด๊ณ ๋Š” pip๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฐํฌํŒ์˜ ์‹คํŒจ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ทผ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ์ž ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. 10๊ฐ€์ง€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ - ์™„๋ฒฝํ•˜๊ฒŒ ์ž˜ ์ฒ˜๋ฆฌ๋˜๊ณ  ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด ๋ฌธ์ œ๊ฐ€ ์ด์ „์— ๋งค์šฐ ์•ˆ์ •์ ์ธ ๋„์ปค ์ด๋ฏธ์ง€ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์™„์ „ํžˆ ํŒŒ๊ดดํ•˜๊ณ  ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋„์ปค ์ด๋ฏธ์ง€ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ์ตœ์†Œ ์ž‘์—…์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค.

+ pip install -U pip setuptools
Collecting pip
  Downloading https://files.pythonhosted.org/packages/62/a1/0d452b6901b0157a0134fd27ba89bf95a857fbda64ba52e1ca2cf61d8412/pip-10.0.0-py2.py3-none-any.whl (1.3MB)
Collecting setuptools
  Downloading https://files.pythonhosted.org/packages/20/d7/04a0b689d3035143e2ff288f4b9ee4bf6ed80585cc121c90bfd85a1a8c2e/setuptools-39.0.1-py2.py3-none-any.whl (569kB)
Installing collected packages: pip, setuptools
  Found existing installation: pip 8.1.1
    Not uninstalling pip at /usr/lib/python2.7/dist-packages, outside environment /usr
Successfully installed pip-10.0.0 setuptools-39.0.1

...

+ pip install jupyter opencv-python plyfile pandas
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

์šฐ๋ฆฌ๋ฅผ ์œ„ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์€ pip 9.03์— ๊ณ ์ •๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

pip install --upgrade pip==9.0.3

๋Œ€์‹ ์—

pip install -U pip

๋ช…๋ฐฑํ•œ ์ˆ˜์ •์ด์ง€๋งŒ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์„ ๋„์šธ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ!

@peteflorence ์•„๋งˆ๋„ docker๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๊ธฐ๋ณธ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“  ๋‹ค์Œ ํ•ด๋‹น ์ด๋ฏธ์ง€์˜ ๋ฃจํŠธ๋กœ pip install -U pip setuptools ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๋ฅผ ํ•จ๊ป˜ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ๋ฟ์ด๋ผ๋ฉด ์ตœ์‹  pip/setuptools๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‹จ์ˆœํžˆ ๋ฐฐํฌํŒ ํŒจํ‚ค์ง€๋กœ ์ œ๊ณต๋˜๋Š” ์ตœ์‹  pip/setuptools๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์ด ๋‹น์‹ ์—๊ฒŒ ๋ฌธ์ œ๋ผ๋Š” ์ ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋„์ปค ๋นŒ๋“œ๊ฐ€ ์ผ๋ฐ˜ OS์— ์žˆ๋Š” ๊ฒฝ์šฐ๋ณด๋‹ค ๋ฃจํŠธ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋Š” ๊ฒฝํ–ฅ์ด ๋” ๋†’์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(์•„๋งˆ๋„ ๋„์ปค ์ด๋ฏธ์ง€๊ฐ€ ๊ฒฉ๋ฆฌ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์Œ). ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์„ ํ•˜๋Š” ๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์ข‹์€ ์ƒ๊ฐ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” pip๊ฐ€ /usr/bin/pip ๋ฅผ ๊ด€๋ฆฌํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ pip 10์—์„œ ์ž‘๋™ํ•˜๋„๋ก "๊ณ ์ •"ํ•  ๋ฐฉ๋ฒ•์ด ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

/usr/bin/pip ์‚ฌ์šฉ์—์„œ python -m pip ์‚ฌ์šฉ์œผ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹โ€‹โ€‹์ง€์›๋˜์ง€ ์•Š์œผ๋ฉฐ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (๊ธฐ๋ณธ OS ๊ณต๊ธ‰ ์—…์ฒด๊ฐ€ ์‹œ์Šคํ…œ pip์— ์–ด๋–ค ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ–ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์Œ). ๊ทธ๋Ÿฌ๋‚˜ ๋” ์˜ค๋ž˜ ์ •๋ ฌํ•˜๋Š” ๋™์•ˆ /usr/bin/pip ์˜ ๋ฌธ์ œ๋ฅผ ํ”ผํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์šฉ์–ด ์†”๋ฃจ์…˜.

pip 9์— ๊ณ ์ •ํ•˜๋Š” ๊ฒƒ๋„ ์†”๋ฃจ์…˜์ด์ง€๋งŒ, pip 9๊ฐ€ ์ •์ƒ์ด๋ฉด OS pip๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ณต๊ธ‰์—…์ฒด๊ฐ€ pip 9์˜ ํŒจํ‚ค์ง€ ๋ฒ„์ „์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ด๋ ‡๊ฒŒ ํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๊ณ  ๊ณ„์† ์„ค๋ช…ํ•˜๊ณ  ์‚ฌ๋žŒ๋“ค์ด "ํ˜ธ์ถœํ•  ํ•จ์ˆ˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์œผ๋ฉด ์ง€์›๋ฉ๋‹ˆ๋‹ค"๋ผ๊ณ  ๊ฐ€์ •ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊ณ„์† ์ฒ˜๋ฆฌํ•˜๋Š” ๋Œ€์‹  ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ๊ฒƒ์„ _internal ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋กœ ์ด๋™ํ•˜์—ฌ ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์„ ํ˜ธ์ถœํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋Œ€์‹  ์ง€์›๋˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ์˜ ๊ธฐ์กด ์‚ฌ์šฉ์„ ์ ๊ทน์ ์œผ๋กœ ์ค‘๋‹จํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์ธ์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ์ดˆ๊ธฐ ๋ฐ˜์‘์€ pip๋ฅผ 9.0.3์œผ๋กœ ๋‹ค์‹œ ๊ณ ์ •ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์œผ๋ฉฐ ๋” ๊ฒŒ์œผ๋ฅธ ๊ฐœ๋ฐœ์ž๋Š” ๊ทธ ์‹œ์ ์—์„œ ์•„๋งˆ๋„ ํ•˜๋ฃจ๋ผ๊ณ  ๋ถ€๋ฅผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ด์ „ ๋ฆด๋ฆฌ์Šค์— ์™„๊ณ ํ•˜๊ฒŒ ์ง‘์ฐฉํ•˜๊ฒŒ ๋˜๋ฉฐ, ์ด๋ฅผ ์›ํ•˜๋Š” ์‚ฌ๋žŒ์€ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹น์‹ ์˜ ๋™๊ธฐ๋Š” ์˜๋ฏธ๊ฐ€ ์žˆ์œผ๋ฉฐ ์ตœ์ข… ๊ฒฐ๊ณผ๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ ์‹œ์Šคํ…œ ๋˜๋Š” pyenv ์„ค์น˜๋ฅผ ๊ต์ฒดํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์žฅ ์ข‹์€ ์†”๋ฃจ์…˜์ด @standag์—์„œ ์นœ์ ˆํ•˜๊ฒŒ ์ œ๊ณต๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. https://github.com/pypa/pip/issues/5221#issuecomment -381568428

์ด ์†”๋ฃจ์…˜์€ @peteflorence ์™€ ๊ฐ™์€ Docker์—์„œ ์˜ค๋ž˜๋œ ๋ฆด๋ฆฌ์Šค๋‚˜ ์ด์™€ ๊ฐ™์€ ๋”์ฐํ•œ ๊ฒƒ์— ๊ณ ์ •ํ•˜์ง€ ์•Š๊ณ  ๊ตฌ์ถ•ํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž„์‹œ ์ˆ˜์ • ์—…๊ทธ๋ ˆ์ด๋“œ pip ์‚ฌ์šฉ.

curl https://bootstrap.pypa.io/get-pip.py | python3

pip install -U pip ๋Œ€์‹ 

pip2 pip2 install --upgrade pip ์˜ ๊ฒฝ์šฐ

python2์™€ python3 ๋ชจ๋‘ pyenv๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ๋Š”๋ฐ ์ด์ œ pip2๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๊ณ  pip3์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
pip2์™€ pip3์„ ๋น„๊ตํ•œ ํ›„ ์ฐจ์ด์ ์€ ๊ฐ€์ ธ์˜ค๊ธฐ ํ–‰์ž…๋‹ˆ๋‹ค.

ํ•2
from pip import main

ํ•3
from pip._internal import main

pip2 import ํ–‰์„ pip3 ๋ฒ„์ „์œผ๋กœ ๋Œ€์ฒดํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋™์ผํ•œ ๋ฌธ์ œ์ด์ง€๋งŒ ์†”๋ฃจ์…˜์œผ๋กœ ํ•ด๊ฒฐ๋จ: https://github.com/pypa/pip/issues/5240#issuecomment -381673100

๊ฐ™์€ ๋ฌธ์ œ:

+ pip install --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/62/a1/0d452b6901b0157a0134fd27ba89bf95a857fbda64ba52e1ca2cf61d8412/pip-10.0.0-py2.py3-none-any.whl
 (1.3MB)
Installing collected packages: pip
  Found existing installation: pip 8.1.1
    Not uninstalling pip at /usr/lib/python2.7/dist-packages, outside environment /usr
Successfully installed pip-10.0.0
+ pip install awscli requests simplejson
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

์ด์ œ ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. pip 10์„ /usr/local/bin์— ์„ค์น˜ํ•˜๊ณ  ์ด๋Š” /usr/bin ์ด์ „์˜ PATH์—์„œ ์ฒซ ๋ฒˆ์งธ์ด์ง€๋งŒ ์ƒˆ ์…ธ๋กœ ์ด๋™ํ•  ๋•Œ๊นŒ์ง€๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด awscli๋ฅผ ์†์œผ๋กœ ์„ค์น˜ํ•˜๋ ค๊ณ  ์ด ์ƒ์ž์— ๊ฐ”์„ ๋•Œ ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค...

$ python --version
Python 2.7.12
$ pip --version
pip 10.0.0 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
$ sudo pip install --upgrade awscli 
 <blah blah>
$ aws --version
aws-cli/1.11.13 Python/3.5.2 Linux/4.4.0-1049-aws botocore/1.4.70
$ /usr/local/bin/aws --version
aws-cli/1.15.4 Python/2.7.12 Linux/4.4.0-1049-aws botocore/1.10.4
$ which aws
/usr/local/bin/aws
$ echo $PATH
/home/ec2-user/bin:/home/ec2-user/.local/bin:/opt/bamboo-elastic-agent/bin:/opt/jdk-8/bin:/opt/maven-2.1/bin:/opt/maven-1.0.2/bin:/opt/ant-1.9/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/bin:/bin:/opt/puppetlabs/bin

@pfmoore ๋Œ“๊ธ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ, ์šฐ๋ฆฌ์˜ ๋„์ปค ์ด๋ฏธ์ง€๋Š” ๋ถ„๋ช…ํžˆ pip 9๊ฐ€ ํ•„์š”ํ–ˆ๊ณ  ์šฐ๋ฆฌ๋Š” nvidia cuda 8.0 ๋„์ปค ์ด๋ฏธ์ง€์™€ ๊ทธ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์•„์•ผ ํ•˜๋Š” ๋‹ค๋ฅธ ๋งŽ์€ ๊ฒƒ๋“ค์„ ์ƒ์†ํ•ฉ๋‹ˆ๋‹ค. ๊ณ ์ •์€ ์šฐ๋ฆฌ์—๊ฒŒ ์ข‹์€ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์—ฐ๊ตฌ ์‹œ์Šคํ…œ์ด๋ฏ€๋กœ ์ฝ”๋“œ๋ฅผ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ์ž ๊ทธ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ถ„๋ช…ํžˆ ๋‹ค๋ฅธ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” pip 10๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ์†”๋ฃจ์…˜์„ ์›ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด์ œ ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. pip 10์„ /usr/local/bin์— ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” Unix ์‚ฌ์šฉ์ž๋Š” ์•„๋‹ˆ์ง€๋งŒ ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์ด ์‰˜์—์„œ "rehashing"์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋Š” ๊ฒƒ์„ ๋ณธ ๊ธฐ์–ต์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์ด ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? bash๋Š” ๊ฒฝ๋กœ ์กฐํšŒ๋ฅผ ์บ์‹œํ•˜๊ณ  ๊ฒฝ๋กœ ๊ฒ€์ƒ‰์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์˜ˆ, ์šฐ๋ฆฌ์˜ ๋„์ปค ์ด๋ฏธ์ง€๋Š” ๋ถ„๋ช…ํžˆ pip 9๊ฐ€ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค ...

์ฟจ - ํ™•์‹คํžˆ pip 9์— ๊ณ ์ •ํ•˜๋Š” ๊ฒƒ์ด ๊ท€ํ•˜์˜ ๊ฒฝ์šฐ ํ•ฉ๋ฆฌ์ ์ธ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ํ™˜๊ฒฝ์„ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ์ˆœ๊ฐ„์„ ๋ฏธ๋ฃจ๊ณ  ๊ทธ๋“ค์„ ๋ณด๊ณ  ๋งน๋ชฉ์ ์œผ๋กœ ๋ณต์‚ฌํ•  ์œ„ํ—˜์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— "pip 9์— ๊ณ ์ •"์— ๋Œ€ํ•œ ์ œ์•ˆ์„ ๊ฑฐ๋ถ€ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์•ฝ๊ฐ„ ์–ด๋ฆฌ๋‘ฅ์ ˆํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ™•์‹คํžˆ ๊ท€ํ•˜์˜ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๊ณ  ๊ณ ์ •์ด ๊ท€ํ•˜์—๊ฒŒ ์ ํ•ฉํ•˜๋‹ค๊ณ  ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ์˜๊ฒฌ์„ ๋น„๋ˆ„ ์ƒ์ž๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค :-)

์šฐ๋ฆฌ๋Š” pip 9์— ๊ณ ์ •ํ–ˆ๊ณ  ๊ทธ๊ฒƒ์ด ์šฐ๋ฆฌ๋ฅผ "๊ณ ์ •"ํ–ˆ์ง€๋งŒ ๋ฌผ๋ก  ์šฐ๋ฆฌ๋Š” ์–ด๋Š ์‹œ์ ์—์„œ pip 10์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

pip2 install xx @HayaoSuzuki ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์‹ญ์‹œ์˜ค

pip 9.0.0์œผ๋กœ ๋Œ์•„๊ฐ€๋Š” ๋ฐฉ๋ฒ•..
๊ทธ๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋‚˜์—๊ฒŒ ๊ฐ™์€ ์˜ค๋ฅ˜๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค

@swtt123 pip install pip==9.0.1 ์„(๋ฅผ) ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

pip 10.0, ๋‚˜๋„ ์ง๋ฉด

AttributeError: 'module' object has no attribute 'main'

pip.main(['install', '-r', 'requirements.txt']) ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๋Š” ๋™์•ˆ

@p00j4 ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ pip ๊ฐ€์ ธ์˜ค๊ธฐ๋Š” ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ ์ฐธ์กฐ

์˜ค! ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ดํ•ดํ•˜์ง€๋งŒ, ์ง€๊ธˆ์€ ๋งŽ์€ ์žฅ์†Œ๋ฅผ ๋ฐ”๊ฟ”์•ผ ํ•œ๋‹ค.
๋จธ๋ฆฌ์— ๋Œ€ํ•ด @pfmoore ์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์œ„์น˜๋ฅผ ์บ์‹ฑํ•˜๋Š” bash์— ์ฃผ์˜ํ•˜์‹ญ์‹œ์˜ค.

$ which pip
/usr/bin/pip

$ pip install --user pip
Collecting pip
(...)
Successfully installed pip-10.0.0

$ pip
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

$ which pip
/usr/bin/pip

$ hash -d pip  # this clears the 'pip' entry from bash's executables locations hash table

$ which pip
/home/zwinny/.local/bin/pip

$ pip --version
pip 10.0.0 from /home/zwinny/.local/lib/python2.7/site-packages/pip (python 2.7)

Raspberry Pi 3B+์— ์ƒˆ๋กœ์šด Raspbian ์„ค์น˜๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ํŠน๋ณ„ํ•œ ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค - ์˜ˆ์œ ๋ฐ”๋‹๋ผ ๊ตฌ์„ฑ - ์ง€๊ธˆ๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์ด ์ž˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์„ค์น˜ ํ”„๋กœ์„ธ์Šค์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

pip install --upgrade pip

Collecting pip
  Downloading https://files.pythonhosted.org/packages/62/a1/0d452b6901b0157a0134fd27ba89bf95a857fbda64ba52e1ca2cf61d8412/pip-10.0.0-py2.py3-none-any.whl (1.3MB)
    100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 1.3MB 101kB/s 
Installing collected packages: pip
Successfully installed pip-10.0.0

... ์ด์ œ pip๊ฐ€ ์™„์ „ํžˆ ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

$ pip
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

์œ„์˜ ์˜๊ฒฌ์— ๋”ฐ๋ผ ~i/.local/bin/pip๊ฐ€ ์ž˜ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๋Š” /usr/bin/pip์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. hash -d pip๋ฅผ ์‹คํ–‰ํ•ด๋„ ์บ์‹œ๋œ ์œ„์น˜๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์˜ต์…˜ ๋ผ์ธ -Iv ๋ฐ --force-reinstall์„ ํ†ตํ•ด 9.0.1๋กœ ๊ฐ•์ œ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ pip๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ์™ธ์— ์œ ์ผํ•œ ํ•ด๊ฒฐ์ฑ…์€ ~/.local/bin/pip์—์„œ pip๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

python -m pip install --upgrade pip 

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋•๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์˜ค๋Š˜ ์ƒˆ๋กœ์šด Ubuntu ๋ฐฐํฌํŒ์„ ์„ค์น˜ํ•˜๊ณ  ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ณธ Python ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜์—ฌ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. pip๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜์–ด ๋ช…๋ น์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด pip๋ฅผ ๋ฒ„์ „ 10์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ๋Š”๋ฐ ์ด ์Šค๋ ˆ๋“œ์˜ ๋งจ ์œ„์— ์žˆ๋Š” ๋™์ผํ•œ ์˜ค๋ฅ˜๋กœ ์ธํ•ด ๋ถ„๋ช…ํžˆ ๊นจ์กŒ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๊ฐ€ pip๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ์ข‹์•„ํ•˜๋Š” ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ ์™ธ์—๋Š” ์•„๋ฌด ๊ฒƒ๋„ ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. pyenv๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ์žˆ๋Š” ์†”๋ฃจ์…˜ ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. python -m pip install --upgrade pip ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด "์š”๊ตฌ ์‚ฌํ•ญ์ด ์ด๋ฏธ ์ตœ์‹  ์ƒํƒœ์ž…๋‹ˆ๋‹ค"๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋ฒ„์ „ 9๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋™์ผํ•œ ์ดˆ๊ธฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

์ด ์Šค๋ ˆ๋“œ๋ฅผ ๋‹ค์‹œ ์ฝ์€ ํ›„ ~/.local/bin/pip ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” @sfsdfd ์˜ ์†”๋ฃจ์…˜์ด ๋งˆ์นจ๋‚ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

~/.local/bin/pip install my-favourite-package

๋ถ„๋ช…ํžˆ ์ด๊ฒƒ์€ ์ด์ „ ๋ฒ„์ „์˜ pip๋กœ ๋˜๋Œ๋ ค (์„ฑ๊ณต์ ์œผ๋กœ) ์ž‘๋™ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ~/.bashrc ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๋‚˜์—๊ฒŒ ๋” ๋‚˜์€ ์ˆ˜์ •์ž…๋‹ˆ๋‹ค.

export PATH=$PATH:~/.local/bin

ํ„ฐ๋ฏธ๋„์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

/usr/bin/pip ์˜ ์ฝ”๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  from pip import main ๋ฅผ from pip._internal import main ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

$ dpkg -S /usr/bin/pip
python-pip: /usr/bin/pip
$ dpkg -S /usr/bin/pip2
python-pip: /usr/bin/pip2
$ apt-file search /usr/bin/pip
colorized-logs: /usr/bin/pipetty
pipebench: /usr/bin/pipebench
pipemeter: /usr/bin/pipemeter
pipexec: /usr/bin/pipexec
python-pip: /usr/bin/pip
python-pip: /usr/bin/pip2
python3-pip: /usr/bin/pip3
rt-tests: /usr/bin/pip_stress

pip install --upgrade pip ์ดํ›„:

$ pip
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main
$ pip2
Traceback (most recent call last):
  File "/usr/bin/pip2", line 9, in <module>
    from pip import main
ImportError: cannot import name main

$ cat /usr/bin/pip
#!/usr/bin/python
# GENERATED BY DEBIAN

import sys

# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.
from pip import main
if __name__ == '__main__':
    sys.exit(main())

/usr/bin/pip ์—…๋ฐ์ดํŠธ ํ›„:

$ cat /usr/bin/pip
#!/usr/bin/python
# GENERATED BY DEBIAN

import sys

# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.
# from pip import main
from pip._internal import main
if __name__ == '__main__':
    sys.exit(main())

$ pip --version
pip 10.0.0 from /home/devops/.local/lib/python2.7/site-packages/pip (python 2.7)

$ pip2
Traceback (most recent call last):
  File "/usr/bin/pip2", line 9, in <module>
    from pip import main
ImportError: cannot import name main

๋‚ด ์‹œ์Šคํ…œ ์ •๋ณด:

$ uname -a
Linux devops-kubernetes-master 4.13.0-38-generic #43-Ubuntu SMP Wed Mar 14 15:20:44 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

$ cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=17.10
DISTRIB_CODENAME=artful
DISTRIB_DESCRIPTION="Ubuntu 17.10"
NAME="Ubuntu"
VERSION="17.10 (Artful Aardvark)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 17.10"
VERSION_ID="17.10"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=artful
UBUNTU_CODENAME=artful

$ python --version
Python 2.7.14

$ apt list --installed | grep python-

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libpython-all-dev/artful,now 2.7.14-2ubuntu1 amd64 [installed]
libpython-dev/artful,now 2.7.14-2ubuntu1 amd64 [installed,automatic]
libpython-stdlib/artful,now 2.7.14-2ubuntu1 amd64 [installed,automatic]
python-all/artful,now 2.7.14-2ubuntu1 amd64 [installed,automatic]
python-all-dev/artful,now 2.7.14-2ubuntu1 amd64 [installed,automatic]
python-apt-common/artful,artful,now 1.4.0~beta3build2 all [installed]
python-asn1crypto/artful,artful,now 0.22.0-1 all [installed,automatic]
python-cffi-backend/artful,now 1.9.1-2build2 amd64 [installed,automatic]
python-crypto/artful-updates,artful-security,now 2.6.1-7ubuntu0.1 amd64 [installed,automatic]
python-cryptography/artful,now 1.9-1 amd64 [installed,automatic]
python-dbus/artful,now 1.2.4-1build3 amd64 [installed,automatic]
python-dev/artful,now 2.7.14-2ubuntu1 amd64 [installed,automatic]
python-enum34/artful,artful,now 1.1.6-1 all [installed,automatic]
python-gi/artful,now 3.24.1-2build1 amd64 [installed,automatic]
python-idna/artful,artful,now 2.5-1 all [installed,automatic]
python-ipaddress/artful,artful,now 1.0.17-1 all [installed,automatic]
python-keyring/artful,artful,now 10.4.0-1 all [installed,automatic]
python-keyrings.alt/artful,artful,now 2.2-2 all [installed,automatic]
python-minimal/artful,now 2.7.14-2ubuntu1 amd64 [installed,automatic]
python-pip/artful,artful,now 9.0.1-2 all [installed]
python-pip-whl/artful,artful,now 9.0.1-2 all [installed,automatic]
python-pkg-resources/artful,artful,now 36.2.7-2 all [installed,automatic]
python-secretstorage/artful,artful,now 2.3.1-2 all [installed,automatic]
python-setuptools/artful,artful,now 36.2.7-2 all [installed,automatic]
python-setuptools-doc/artful,artful,now 36.2.7-2 all [installed]
python-six/artful,artful,now 1.10.0-4 all [installed,automatic]
python-talloc/artful,now 2.1.9-2ubuntu1 amd64 [installed]
python-wheel/artful,artful,now 0.29.0-2 all [installed,automatic]
python-xdg/artful,artful,now 0.25-4 all [installed,automatic]

๋‚˜๋Š” ์ด๋ ‡๊ฒŒ ๊ณ ์ณค๋‹ค.

$ ํ• --๋ฒ„์ „
์—ญ์ถ”์ (๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰):
ํŒŒ์ผ "/usr/bin/pip", 9ํ–‰,
ํ• ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฉ”์ธ์—์„œ
ImportError: main ์ด๋ฆ„์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
$ sudo apt-get python-pip ์ œ๊ฑฐ
$ sudo apt-get ์„ค์น˜ python-pip
$ ํ• --๋ฒ„์ „
/home/user/.local/lib/python2.7/site-packages/pip(ํŒŒ์ด์ฌ 2.7)์˜ pip 10.0.0

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋•๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ฒƒ์„ ๋”ฐ๋ผ ํ•œ ํ›„์—๋„ pip๋ฅผ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ณ„์† ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

$ sudo apt-get python-pip ์ œ๊ฑฐ
$ ํ• -v
bash: /usr/bin/pip: ํ•ด๋‹น ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ์ด๊ฒƒ์„ ์‹œ๋„ํ•  ๋•Œ$ ํŒŒ์ด์ฌ -m ํ• -V/home/user/.local/lib/python2.7/site-packages/pip(ํŒŒ์ด์ฌ 2.7)์˜ pip 10.0.0

๊ทธ๋ž˜์„œ pip์˜ ์ „์ฒด ํด๋”๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.
$ sudo rm -r /home/user/.local/lib/python2.7/site-packages/pip*

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์‹œ ๋‚˜๋Š” ์ด๊ฒƒ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
$ ํŒŒ์ด์ฌ -m ํ• -V
/usr/bin/pip: pip๋ผ๋Š” ๋ชจ๋“ˆ์ด ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ pip๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.
$ sudo apt ์„ค์น˜ python-pip
$ ํŒŒ์ด์ฌ -m ํ• -V
usr/lib/python2.7/dist-packages์˜ pip 8.1.1(ํŒŒ์ด์ฌ 2.7)

์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

3์‹œ๊ฐ„์„ ํ—ˆ๋น„ํ•œ ํ›„ ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์–ป์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

pip 10.0.0์„ ์ œ๊ฑฐํ•˜๋ ค๋ฉด:
sudo apt-get python-pip ์ œ๊ฑฐ

๊ทธ๋Ÿฌ๋‚˜ ์ง์ ‘ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•„์š”ํ•œ ์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „์˜ pip๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์„ค์น˜ ํ›„ ์•Œ๋ ค์ง„ ์ž‘๋™ ๋ฒ„์ „์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด
pip10์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ: ImportError: ์ด๋ฆ„์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ์„ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํŒŒ์ด์ฌ -m pip ์„ค์น˜ pip==KNOW_WORKING_VERSION>

PIP10์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด:
sudo python -m pip install PACKAGE_NAME
์ด๊ฒƒ์€ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๋‹ค.

๊ฑด๋ฐฐ :)

๋™์ผํ•œ ๋ฌธ์ œ, ๋ฌธ์ œ ์ˆ˜์ •: ์ „์ฒด ์žฌ์„ค์น˜: python-pip

์—ฌ๊ธฐ์— ์–ธ๊ธ‰ ๋œ๋Œ€๋กœ ์‰˜์„ ๋‹ค์‹œ ๋กœ๊ทธ์ธํ•˜์‹ญ์‹œ์˜ค.
https://github.com/pypa/pip/issues/5240#issuecomment -382262586

pip3 install --upgrade pip==9.0.3
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'

ํ—... ๋‚ด๊ฐ€ ๋ญ˜ ๋นผ๊ณ ...

๋ฐฉ๊ธˆ pip ์„ค์น˜๋ฅผ ํ’€์—ˆ์Šต๋‹ˆ๋‹ค.
python -m pip install --user --upgrade pip==9.0.3

์ด ๋ฌธ์ œ๋Š” CI์šฉ AppVeyor๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ Windows ๋นŒ๋“œ์—์„œ๋„ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ๋ณด๊ณ ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.
๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Running Install scripts
SET PATH=%PYTHON%;%PYTHON%\Scripts;%PATH%
pip install --disable-pip-version-check --user --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl (1.3MB)
Installing collected packages: pip
Successfully installed pip-10.0.1
pip install -U setuptools
Traceback (most recent call last):
  File "c:\python27-x64\lib\runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "c:\python27-x64\lib\runpy.py", line 72, in _run_code
    exec code in run_globals
  File "C:\Python27-x64\Scripts\pip.exe\__main__.py", line 5, in <module>
ImportError: cannot import name main
Command exited with code 1

์ด ์ƒ˜ํ”Œ์˜ ๊ถŒ์žฅ ์‚ฌํ•ญ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฌ๋Ÿฌ appveyor.yml ์Šคํฌ๋ฆฝํŠธ์— pip install --disable-pip-version-check --user --upgrade pip ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/ogrisel/python-appveyor-demo/blob/master/appveyor.yml #L111

์ด๊ฒƒ์€ pip 10.x๊นŒ์ง€ ์ž˜ ์ž‘๋™ํ–ˆ์œผ๋ฉฐ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์ด๊ฒƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ appveyor.yml ๋ฅผ ๋งŒ๋“  ๊ฒฝ์šฐ์—๋„ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

easy_install -U pip ๋กœ ์ „ํ™˜ํ•˜๋ฉด ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ๊ทธ ์ „์— ์ž‘๋™ํ–ˆ๋˜ ์—ฌ๋Ÿฌ ์ €์žฅ์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ pip 10.x์—์„œ ์ž‘๋™ํ•˜๋„๋ก ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

CI ์„ค์ •์— ๊ถŒ์žฅ๋˜๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์€ 9.0.3์„ ๊ณ ์ˆ˜ํ•˜๊ฑฐ๋‚˜ easy_install์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

CI ์„ค์ •์— ๊ถŒ์žฅ๋˜๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์€ 9.0.3์„ ๊ณ ์ˆ˜ํ•˜๊ฑฐ๋‚˜ easy_install์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ถŒ์žฅ๋˜๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์€ pip์˜ ๋‚ด๋ถ€ ๊ตฌํ˜„ ์„ธ๋ถ€ ์ •๋ณด์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ/์‘์šฉ ํ”„๋กœ๊ทธ๋žจ/๋„๊ตฌ์˜ ์ข…์†์„ฑ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. easy_install์€ ๋” ์ด์ƒ AFAIK๋ฅผ ์ ๊ทน์ ์œผ๋กœ ๊ฐœ์„ ํ•˜์ง€ ์•Š์œผ๋ฉฐ pip๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ๋งŽ์€ ์ž‘์—…์„ ์ง€์›ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠน์ • ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ python -m pip install --force-reinstall pip ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์†์ƒ๋œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ƒˆ ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜์‹ญ์‹œ์˜ค.

๊ถŒ์žฅ๋˜๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์€ pip์˜ ๋‚ด๋ถ€ ๊ตฌํ˜„ ์„ธ๋ถ€ ์ •๋ณด์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ/์‘์šฉ ํ”„๋กœ๊ทธ๋žจ/๋„๊ตฌ์˜ ์ข…์†์„ฑ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. easy_install์€ ๋” ์ด์ƒ AFAIK๋ฅผ ์ ๊ทน์ ์œผ๋กœ ๊ฐœ์„ ํ•˜์ง€ ์•Š์œผ๋ฉฐ pip๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ๋งŽ์€ ์ž‘์—…์„ ์ง€์›ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹น์‹ ์ด ๊ทธ์˜ ํฌ์ŠคํŠธ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์„ ์ฝ์ง€ ์•Š์•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Š” pip ๋Œ€์‹  easy_install์„ ์‚ฌ์šฉํ•˜์—ฌ pip๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์„ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

easy_install๋กœ ์ „ํ™˜ -U pip๊ฐ€ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค...

๋˜ํ•œ ๊ทธ๋Š” pip์˜ ๋‚ด๋ถ€ ๊ตฌํ˜„ ์„ธ๋ถ€ ์ •๋ณด์— ์˜์กดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” AppVeyor์˜ ์ƒˆ๋กœ์šด ์Šคํ•€์—…์„ ์‚ฌ์šฉํ•˜๊ณ  ๊ทธ๊ฐ€ ์ง€์ •ํ•œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ pip๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

pip install --disable-pip-version-check --user --upgrade pip

์ด ์Šค๋ ˆ๋“œ์˜ ๋‹ค๋ฅธ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน๋ณ„ํ•œ ์ž‘์—…์„ ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ pip์˜ ๋‚ด๋ถ€์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  pip์˜ ๊ธฐ๋ณธ ์„ค์น˜๋กœ ์ด๊ฒƒ์„ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์œ„์˜ ๊ฒŒ์‹œ๋ฌผ์—์„œ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์— ์˜ํ•ด ๋ฌธ์„œํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@ikreymer ๋ง์”€ํ•˜์‹  ๋ฌธ์ œ๋Š” Windows๋ฅผ ์‹คํ–‰ํ•˜๋Š” Appveyor์— ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๋…ผ์˜๋˜๋Š” ๋ฌธ์ œ๋Š” ๋…์ ์ ์ธ Unix ์œ ํ‹ธ๋ฆฌํ‹ฐ์ธ pyenv ์™€ ๊ด€๋ จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

@pradyunsg ์— ๋Œ€ํ•ด ์ž˜ ๋ชจ๋ฅด์ง€๋งŒ ๋…ผ์˜๋˜๊ณ  ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ ์  ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œ์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทผ๋ณธ ์›์ธ์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. pip๊ฐ€ (์˜๋„์ ์œผ๋กœ) ๋‚ด๋ถ€ API๋ฅผ ์ด๋™ํ–ˆ์œผ๋ฉฐ, ์ด๋Š” ์ง์ ‘ ๋˜๋Š” ๊ฐ„์ ‘์ ์œผ๋กœ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋„๊ตฌ์— ์˜์กดํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๋ฐ”๋€” ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ๋„๋ก ์ง€์›ํ•˜๋ ค๋ฉด ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ๋ฌธ์ œ์— ์ง‘์ค‘์ ์œผ๋กœ ํ† ๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ œ๊ฐ€ ๋ฌผ์–ด๋ด๋„ ๋ ๊นŒ์š”? Appveyor์˜ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋„์›€์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ฌธ์ œ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ด์–ด ์ฃผ์‹œ๋ฉด ํ† ๋ก ์„ ๊ทธ๊ณณ์œผ๋กœ ์˜ฎ๊ธฐ๊ฒ ์Šต๋‹ˆ๋‹ค. (๋Œ€๋ถ€๋ถ„์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ์€ ๊ท€ํ•˜์˜ ์˜๊ฒฌ์— ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฌธ์ œ์˜ ์‹œ์ž‘์ ์ด ๋  ๊ฒƒ์ด์ง€๋งŒ ์ƒˆ๋กœ์šด Appveyor ํ”„๋กœ์ ํŠธ์—์„œ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์™„์ „ํ•œ ์„ค๋ช…์€ ๋ฌธ์ œ ์ง„๋‹จ์„ ๋•๋Š” ๋ฐ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. .

@arvoelke :

๊ทธ๋Š” pip ๋Œ€์‹  easy_install์„ ์‚ฌ์šฉํ•˜์—ฌ pip๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์„ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

easy_install ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ pip๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ( @pradyunsg ๊ฐ€ ๋งํ–ˆ๋“ฏ์ด) easy_install ๊ฐ€ ์˜ค๋ž˜๋˜๊ณ  ์ ๊ทน์ ์œผ๋กœ ์œ ์ง€ ๊ด€๋ฆฌ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ ๊ธฐ๋Šฅ์ด ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์ด ๋‹น์‹ ์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ๊ณ  ์šฐ๋ฆฌ์˜ ๋„์›€์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๋ฉด ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋„ ๋‹น์‹ ์„ ๋ง‰์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ์˜ ๋‹ค๋ฅธ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

"๋™์ผ"์„ ์ •์˜ํ•˜์‹ญ์‹œ์˜ค. " pip.main ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์ฝ”๋“œ์—์„œ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋จ"์„ ์˜๋ฏธํ•œ๋‹ค๋ฉด ์˜ˆ, ํ•˜์ง€๋งŒ pip์—๋Š” ๋ฌธ์ œ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์˜๋„์ ์ด๊ณ  ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” pip์˜ ๋‚ด๋ถ€ ๊ตฌํ˜„์œผ๋กœ ๋ณ€๊ฒฝํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํž˜๋“ , ๋‹น์‹ ์€ pip์˜ ๋‚ด๋ถ€ API๋ฅผ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค." ๊ทธ๋Ÿฌ๋ฉด ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ ๋ฌธ์ œ๋กœ ์ถฉ๋ถ„ํ•˜๋ฉฐ "๋ฒ„๊ทธ๊ฐ€ ์•„๋‹˜"์œผ๋กœ ์ข…๋ฃŒํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฌธ์ œ ํ•ด๊ฒฐ์— ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ํ™˜๊ฒฝ์˜ ์ผ๋ถ€๊ฐ€ 6๊ฐœ์›” ์ „์— ๊ฒŒ์‹œ๋œ ์กฐ์–ธ์„ ๋”ฐ๋ฅด์ง€ ์•Š๊ณ  ๊ณต๊ธ‰์—…์ฒด์—์„œ ํ™˜๊ฒฝ์„ ์ˆ˜์ •ํ•˜๋Š” ๋™์•ˆ pip๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์€ ๋‹ค์Œ ์šฐ๋ฆฌ๋ฅผ ๋„์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค. Windows์—์„œ ์‹คํ–‰ํ•  ๋•Œ ์ˆœ์ˆ˜ํ•œ Unix ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ๋Œ€ํ•œ ๋ณด๊ณ ์„œ์—์„œ "๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์€ ํ™•์‹คํžˆ ์šฐ๋ฆฌ๊ฐ€ ๋‹น์‹ ์„ ๋•๋Š” ๋ฐ ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ...

์—ฌ๊ธฐ์—์„œ ๋…ผ์˜๋˜๋Š” ๋ฌธ์ œ๋Š” ๋…์ ์ ์ธ Unix ์œ ํ‹ธ๋ฆฌํ‹ฐ์ธ pyenv์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ์— ๋Œ€ํ•œ ์ฒซ ๋ฒˆ์งธ ๋‹ต๋ณ€ ์ค‘ ํ•˜๋‚˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๊ฐ™์Œ .. @HayaoSuzuki ์™€ ๋™์ผํ•œ ์ถœ๋ ฅ์ด๋ฉฐ pyenv๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

pyenv ์ธก๋ฉด์€ Ubuntu ๋ฐ RaspberryPi๋ฅผ ์ƒˆ๋กœ ์„ค์น˜ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํฌํ•จํ•˜์—ฌ ์œ„์˜ ์˜๊ฒฌ๊ณผ ์—ฐ๊ฒฐ๋œ ๋ฌธ์ œ ๋ฐ ์ปค๋ฐ‹์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์†Œ ๋ถ€์ฐจ์ ์ธ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ ์ด ๋ชจ๋“  ๊ฒƒ์€ ์ด๋ฏธ ์ด ๋ฌธ์ œ์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค. ๊ทผ๋ณธ ์›์ธ์€ OP๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ์‚ฌ๋žŒ์— ๋Œ€ํ•ด "๋™์ผํ•œ"(์ฆ‰, pip๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ๋‹ค์Œ ์‹œ์ž‘ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ๊ฒƒ) ๋” ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๊ทธ๋“ค ์‚ฌ์ด์— ์•„๋ฌด๋Ÿฐ ์ฐจ์ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ๋ฐฉ์‹.

Windows์—์„œ ์‹คํ–‰ํ•  ๋•Œ ์ˆœ์ˆ˜ํ•œ Unix ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ๋Œ€ํ•œ ๋ณด๊ณ ์„œ์—์„œ "๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์€ ํ™•์‹คํžˆ ์šฐ๋ฆฌ๊ฐ€ ๋‹น์‹ ์„ ๋•๋Š” ๋ฐ ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค...

Windows์—์„œ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ „์— ๋งํ–ˆ๋“ฏ์ด ์šฐ๋ถ„ํˆฌ์—์„œ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํฌ์Šคํ„ฐ๋Š” Windows๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ ์ด ๋ฌธ์ œ์˜ ๋‚˜๋จธ์ง€ ์‚ฌ๋žŒ๋“ค์ฒ˜๋Ÿผ ๋‹จ์ˆœํžˆ pip๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  pip๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. pyenv๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฌธ์ œ์˜ ๊ทผ๋ณธ์ด ์•„๋‹ˆ๋ผ๋Š” ๋ฐ์—๋Š” ๊ฝค ์ผ๋ฐ˜์ ์ธ ํ•ฉ์˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ชจ๋“  ๋ฌธ์ œ๋Š” pip๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์ด์ „ ์ง„์ž…์ ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์ „ ๋Ÿฐ์ฒ˜๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•˜๋Š” ๋™์ผํ•œ ๋ฌธ์ œ์—์„œ ๋น„๋กฏ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์€ python -m pip ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ชจ๋“  ๋ฌธ์ œ๋Š” pip๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์ด์ „ ์ง„์ž…์ ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์ „ ๋Ÿฐ์ฒ˜๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•˜๋Š” ๋™์ผํ•œ ๋ฌธ์ œ์—์„œ ๋น„๋กฏ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์€ python -m pip๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋„ค, ์ด๊ฒƒ์ด ๋ฌธ์ œ์˜ ๊ทผ๋ณธ์ธ ๊ฒƒ ๊ฐ™์œผ๋ฉฐ Windows๋ฅผ ํฌํ•จํ•˜์—ฌ ์ด ์Šค๋ ˆ๋“œ์—์„œ ์–ธ๊ธ‰๋œ ๋ชจ๋“  ๋‹ค๋ฅธ ํ”Œ๋žซํผ์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์—์„œ appveyor.yml pip ์—…๊ทธ๋ ˆ์ด๋“œ ์ „ํ™˜์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

pip install --disable-pip-version-check --user --upgrade pip

์—๊ฒŒ:

python -m pip install --upgrade pip

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๋” ๋งŽ์€ ์ €์žฅ์†Œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค!

๋‹ค๋ฅธ ์ƒํ™ฉ์—์„œ ์—ฌ๊ธฐ์—์„œ ๋…ผ์˜๋œ ๋™์ผํ•œ ์ฆ์ƒ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

Ubuntu 16.0.4 ์‹œ์Šคํ…œ์—์„œ ๋กœ์ปฌ๋กœ ์„ค์น˜๋œ pip๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

curl -O https://bootstrap.pypa.io/get-pip.py
export PYTHONUSERBASE=$(pwd)
python ./get-pip.py --user
export PYTHONPATH=$(pwd)/lib/python2.7/site-packages

python ./bin/pip --version

Traceback (most recent call last):
  File "/path/to/bin/pip", line 7, in <module>
    from pip._internal import main
ImportError: No module named _internal

Ubuntu๋Š” site.py sys.path ์— pip ํŠน์ • ๊ฒฝ๋กœ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์•„๋ž˜ ํ‘œ์‹œ๋œ ๋‚ด PYTHONPATH ๋ฅผ ์žฌ์ •์˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

import sys
print(sys.path)
['', '/usr/local/lib/python2.7/dist-packages/pip-9.0.1-py2.7.egg', '/path/to/lib/python2.7/site-packages`, ...]

man ํŽ˜์ด์ง€์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฌธ์„œํ™”๋˜์–ด ์žˆ๋Š” python์— ๋Œ€ํ•ด -S ํ”Œ๋ž˜๊ทธ๋ฅผ ์•ž์— ๋ถ™์ด์ง€ ์•Š๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

-S ๋ชจ๋“ˆ ์‚ฌ์ดํŠธ ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐ ์ด์— ์ˆ˜๋ฐ˜๋˜๋Š” sys.path์˜ ์‚ฌ์ดํŠธ ์ข…์† ์กฐ์ž‘์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๋‹ค:

python -S ./bin/pip --version

pip 10.0.1 from path/to/bin/pip (python 2.7)

์ด๊ฒƒ์ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ณต์œ  - ๋‚ด ๋„์ปค ์ด๋ฏธ์ง€ (๊ธฐ๋ณธ์€ ubuntu:xenial )์—์„œ ๋‹ค์Œ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์‹ ํ–ˆ์Šต๋‹ˆ๋‹ค.

Step 8/12 : RUN pip install -U pip  && pip install -r /tmp/requirements.txt
 ---> Running in e4ff51b013f0
Collecting pip
  Downloading https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl (1.3MB)
Installing collected packages: pip
  Found existing installation: pip 8.1.1
    Not uninstalling pip at /usr/lib/python2.7/dist-packages, outside environment /usr
Successfully installed pip-10.0.1
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

pip install -U pip && pip install -r /tmp/requirements.txt ์„ pip2 install -U pip && pip2 install -r /tmp/requirements.txt ๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@davidjlloyd ์˜ ๋Œ“๊ธ€์— ๋Œ€ํ•œ ๋‹ต๋ณ€/์‘๋‹ต์„ ๋ณด์•˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋Œ€์‹  ์ง€์›๋˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ์˜ ๊ธฐ์กด ์‚ฌ์šฉ์„ ์ ๊ทน์ ์œผ๋กœ ์ค‘๋‹จํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์ธ์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ์‚ฌ์šฉ ์ค‘๋‹จ ์ ˆ์ฐจ๊ฐ€ ์—†๋Š” ์ด์œ ๋ฅผ ์—ฌ์ญค๋ด๋„ ๋ ๊นŒ์š”?
pip ์˜ import ์—์„œ pip sys.argv[0] #$ ๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์‰ฌ์› ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. pip ๋˜๋Š” pipX[.Y] ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ์–ธ๊ธ‰ํ•œ https://pip.pypa ์— ๋Œ€ํ•œ ๋งํฌ์™€ ํ•จ๊ป˜ ๋ฆด๋ฆฌ์Šค X+์—์„œ ์‹คํŒจํ•  DeprecationWarning ์ผ๋ถ€๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค. io/en/latest/user_guide/#using -pip-from-your-program

์•ž์œผ๋กœ ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ์ผ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ๋ณด์žฅํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@davidjlloyd ์˜ ๋Œ“๊ธ€์— ๋Œ€ํ•œ ๋‹ต๋ณ€/์‘๋‹ต์„ ๋ณด์•˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐ˜๋ณต์ ์œผ๋กœ ๋‹ต๋ณ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ด ํŠน์ • ๋ฌธ์ œ๊ฐ€ ์•„๋‹ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋ฌธ์ œ ์ถ”์ ๊ธฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ฉด ํ•ด๋‹น ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋งŽ์€ ํ† ๋ก ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ์‚ฌ์šฉ ์ค‘๋‹จ ์ ˆ์ฐจ๊ฐ€ ์—†๋Š” ์ด์œ ๋ฅผ ์—ฌ์ญค๋ด๋„ ๋ ๊นŒ์š”?

์ง€์›ํ•œ ์ ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ฒฐ์ฝ” ์ง€์ง€ํ•˜์ง€ ์•Š์€ ๊ฒƒ์„ ์ง€์ง€ํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๊ฒฝ๊ณ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์‚ฌ๋žŒ๋“ค์€ pip์˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ฝ๊ณ  ๊ฑฐ๊ธฐ์— ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ž์ฒด ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ดœ์ฐฎ๋‹ค๊ณ  ์ƒ๊ฐ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๊ฒฐ์ฝ” ์•„๋‹ˆ์—ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์ด ๊นจ์งˆ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋งํ–ˆ๊ณ  pip 10์—์„œ ๊นจ์กŒ์Šต๋‹ˆ๋‹ค.

pip๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ sys.argv[0]์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์‰ฌ์› ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. pip ๋˜๋Š” pipX[.Y]๊ฐ€ ์•„๋‹ˆ๋ฉด DeprecationWarnings๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.

์ƒ๊ฐ๋งŒํผ ์‰ฌ์šด์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” pip 10์— ์ถ”๊ฐ€๋œ ๊ฒฝ๊ณ ๊ฐ€ ์šฐ๋ฆฌ๊ฐ€ ์˜ˆ์ƒํ•˜์ง€ ๋ชปํ–ˆ์„ ๋•Œ ์ด‰๋ฐœ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ–ˆ๋˜ ์‚ฌ๋žŒ์˜ ๊ด€์ ์—์„œ ๋งํ•ฉ๋‹ˆ๋‹ค...

๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ, ์ฒ˜์Œ๋ถ€ํ„ฐ ์ง€์›๋˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์•ž์œผ๋กœ ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ์ผ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ๋ณด์žฅํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฌด์Šจ ์ผ์ด์•ผ? ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์œผ๋กœ ์ธํ•œ ์†์ƒ? ์•„๋‹ˆ์š”. ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์„ ํ”ผํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ์šฐ๋ฆฌ๋Š” ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์˜ˆ์˜๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค(์˜๋ฌด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค !). ์ด ๊ฒฝ์šฐ ์šฐ๋ฆฌ๋Š” 6๊ฐœ์›” ์ „์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ณต๊ฐœํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ œ์•ˆ์„ ์ œ๊ณตํ–ˆ์œผ๋ฉฐ ๋ฆด๋ฆฌ์Šค ์ดํ›„๋กœ ๋งŽ์€ ์‹œ๊ฐ„์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜์กดํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ด์ง€ ์•Š์•„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ์‚ฌ์šฉ์ž๋ฅผ ๋„์™”์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฒฝ๊ณ . ๊ทธ๊ฒƒ์€ ์•„์ฃผ ์ž‘์€ ์ž์› ๋ด‰์‚ฌ์ž ๊ทธ๋ฃน์ด ์ œ๊ณต๋˜๊ฑฐ๋‚˜ ์•ฝ์†๋œ ์ ์ด ์—†๋Š” ์ง€์›์„ ๊ธฐ๋Œ€ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ์„ ์™„ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ํˆฌ์ž…ํ•œ ๋งŽ์€ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ์ฒœ๋งŒ์—์š”.

ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅ ํ•˜๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์œ„ํ•œ ํ”„๋กœ์„ธ์Šค(์‚ฌ์šฉ ์ค‘๋‹จ ๊ฒฝ๊ณ  ๋“ฑ)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ pip๋ฅผ ์ž์‹ ์˜ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์€ ๊ทธ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

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

pip install --upgrade pip
echo "pip install Flask" | bash
echo "pip install requests" | bash

@OneLogicalMyth ๋‹น์‹ ์ด ์ฐพ๊ณ  ์žˆ๋Š” ๊ฒƒ์€ hash -d pip ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/pypa/pip/issues/5221#issuecomment -381568428์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ฃผ์˜ ๊นŠ๊ฒŒ ์ฝ์€ ํ›„์—๋„ ์™„์ „ํžˆ ๋†“์ณค์Šต๋‹ˆ๋‹ค. @austinbutler ๋•๋ถ„ ์— ์ œ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ์—ด๋ฆฐ ์ƒํƒœ๋กœ ์œ ์ง€๋˜๊ณ  ๋ณต์ œ๋ณธ์œผ๋กœ ์ฆ‰์‹œ ๋‹ซํžˆ์ง€ ์•Š์€ ์œ ์ผํ•œ ์ด์œ ๋Š” pyenv๊ฐ€ shim์œผ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  pip๊ฐ€ ์–ด๋–ค ์‹์œผ๋กœ๋“  ๋„์›€์ด ํ•„์š”ํ•œ์ง€ ๊ฑฑ์ •๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ์ด ๋ฌธ์ œ๋Š” ์ด์ œ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ์–ธ๊ธ‰๋œ ๊ฑฐ์˜ ๋ชจ๋“  ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ด์ „์— ๋‚˜์—ด ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์—์„œ ์ œ๊ธฐ๋œ ๋ชจ๋“  ์šฐ๋ ค ์‚ฌํ•ญ์ด ํ•ด๊ฒฐ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ฌ์‹ญ์‹œ์˜ค.

@benoit-pierre ๋งํฌ๋œ ๋Œ“๊ธ€์— python -m pip ์‚ฌ์šฉ ์ œ์•ˆ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. :)


easy_install์„ ์‚ฌ์šฉํ•˜์—ฌ pip๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ( @pradyunsg ๊ฐ€ ๋งํ–ˆ๋“ฏ์ด) easy_install์ด ์˜ค๋ž˜๋˜๊ณ  ์ ๊ทน์ ์œผ๋กœ ์œ ์ง€ ๊ด€๋ฆฌ๋˜์ง€ ์•Š๊ณ  ์ตœ์‹  ๊ธฐ๋Šฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ง€์›ํ•ด ๋“œ๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@pfmoore์˜ ์ž…์žฅ์„ ๋ช…ํ™•ํžˆ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ๋‚ด๊ฐ€ ๋งํ–ˆ๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋…ผ์˜๋˜๊ณ  ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋“ค์ด ๋ฌด์—‡์ธ์ง€ ์ ์  ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œ์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋„.


์ด๋ฒˆ ํ˜ธ์—์„œ ๋ณธ ๊ฒƒ๋“ค์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ผ๋ฐ˜์ ์ธ ํŒ(์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๊ทธ๋Œ€๋กœ ๋‘์‹ญ์‹œ์˜ค):

  • ์–ด๋–ค ์ด์œ ๋กœ pip ๋ช…๋ น์ด ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด python -m pip ๋ฅผ ์‹คํ–‰ํ•ด ๋ณด์‹ญ์‹œ์˜ค. ๋ž˜ํผ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ค‘๋‹จ๋˜๋”๋ผ๋„ python -m pip ๊ฐ€ ์ž‘๋™ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ฝ๋‹ˆ๋‹ค.
  • pip๋ฅผ ๋ฃจํŠธ๋กœ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ sudo pip ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์‹œ์Šคํ…œ์„ ๋ง๊ฐ€๋œจ๋ฆด ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์œผ๋ฉฐ ์ถฉ๋ถ„ํžˆ ๋‚˜์˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ฃจํŠธ๋กœ ์›๊ฒฉ ์ฝ”๋“œ ์‹คํ–‰์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด ์ฃผ์„ ์ƒ๋‹จ์— ์ธ์šฉ๋œ ์ด์œ  ๋•Œ๋ฌธ์— easy_install์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์—ฌ๊ธฐ์— ๋” ๋งŽ์€ ์ปจํ…์ŠคํŠธ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(์•ฝ๊ฐ„ ๊ตฌ์‹์ž…๋‹ˆ๋‹ค).
  • ์ œ๋ฐœ pip 9์— ๊ณ ์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์œผ๋กœ Python Packaging์˜ ์ง„ํ–‰ ์†๋„๋ฅผ ๋Šฆ์ถ”๋Š” ๋ฐ ์ ๊ทน์ ์œผ๋กœ ์ž‘์šฉํ•œ๋‹ค๊ณ  ๊ฐ•๋ ฅํ•˜๊ฒŒ ๋ฏฟ์Šต๋‹ˆ๋‹ค.

    • pip 9๋Š” PEP 517/518์„ ์ง€์›ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ฉฐ pip 9๋ฅผ ์œ ์ง€ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ƒˆ๋กœ์šด ํŒจํ‚ค์ง• ํ‘œ์ค€์œผ๋กœ ์ „ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งˆ์ง€๋ง‰ ์ˆœ๊ฐ„์— ํŒจํ‚ค์ง€๊ฐ€ ํŒŒ์†๋  ๋•Œ ๋‚˜์ค‘์— ์ „ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜๊ณ ๋ฅผ ํ•ด์•ผ๋งŒ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.


์š”์•ฝํ•˜์ž๋ฉด ์ด๊ฒƒ์€ ๋‹จ์ผ ํ”„๋กœ์ ํŠธ/๊ฐœ์ธ์˜ ์ž˜๋ชป์ด ์•„๋‹ˆ๋ฉฐ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ž์‹ ์˜ ํ–‰๋™์„ ์ทจํ•˜๋Š” ๋ฐ ํ•ฉ๋‹นํ•œ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„ค, ํ™˜๊ฒฝ์ด ๋ง๊ฐ€์กŒ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ดํ•ดํ•œ๋‹ค. ์ง€๊ธˆ ๋‹น์žฅ ๋‹น์‹ ์„ ๋•๊ณ  pip๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ์ž์œ  ์‹œ๊ฐ„์„ ์ž์›ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ๋น„๋‚œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์šฐ๋ฆฌ๋ฅผ ๋•๊ณ  ์‹ถ์Šต๋‹ˆ๊นŒ? https://donate.pypi.org ๋Š” ๋ฌธ์ œ์ด๋ฉฐ, ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ด ๋ฌธ์ œ ์ถ”์ ๊ธฐ์—๋Š” ์šฐ๋ฆฌ๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ๋Š” ๋งŽ์€ ๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ์ด ๋ฌธ์ œ์—์„œ ๋ฌผ๋Ÿฌ๋‚˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ž, ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์šฐ๋ฆฌ์˜ ๋ชจ๋“  ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ pip._internal ๋กœ ์˜ฎ๊ธฐ๊ธฐ๋กœ ํ•œ ๊ฒฐ์ •์— ๋Œ€ํ•ด ์—ฌ์ „ํžˆ ๋…ผ์˜ํ•˜๊ณ  ์‹ถ์–ดํ•œ๋‹ค๋ฉด ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ด๊ณ  ์–ธ๊ธ‰์„ ํ•ด์ฃผ์‹ญ์‹œ์˜ค. ๋‚˜๋Š” pip๊ฐ€ ์™œ ์ด๊ฒƒ์„ ํ–ˆ๋Š”์ง€์— ๋Œ€ํ•ด ๋งํฌ์™€ ๋ชจ๋“  ๊ฒƒ์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ํ• ์• ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด @pypa/pip-committers๊ฐ€ ์ด ์ฃผ์ œ์— ๋Œ€ํ•ด ๋งํฌํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ์ผ ์œ„์น˜๋ฅผ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋‹น๋ถ„๊ฐ„ ์ด๊ฒƒ์€ python3 / pip3 ์—์„œ ์ž‘๋™ํ•˜์—ฌ ๋กค๋ฐฑํ–ˆ์Šต๋‹ˆ๋‹ค.

python3 -m pip install --user --upgrade pip==9.0.3

@freckletonj ์‚ฌ๋žŒ๋“ค์—๊ฒŒ pip 9๋กœ ๋˜๋Œ๋ฆฌ๋ผ๊ณ  ๋งํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด ๋ฐฉ๋ฒ•์€ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์•„๋‹™๋‹ˆ๋‹ค. ํ›จ์”ฌ ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‚˜์—ดํ•œ ๊ท€ํ•˜์˜ ๋ฐ”๋กœ ์œ„์— ์žˆ๋Š” ๋Œ“๊ธ€์— ๋งํฌํ–ˆ์Šต๋‹ˆ๋‹ค.

@pradyunsg ์ฃ„์†กํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

$ pip3 install --upgrade --user pip
Collecting pip
  Using cached https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 9.0.3
    Uninstalling pip-9.0.3:
      Successfully uninstalled pip-9.0.3
Successfully installed pip-10.0.1
$ pip3
Traceback (most recent call last):
  File "/usr/local/bin/pip3", line 7, in <module>
    from pip import main
ImportError: cannot import name 'main'

์œ„์—์„œ ๋งํฌํ•œ https://github.com/pypa/pip/issues/5221#issuecomment -382069604์—์„œ:

hash -r pip # or hash -d pip

๋‹ค๋ฅธ ์งˆ๋ฌธ์ด ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์œผ๋ฉด ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ฌ์‹ญ์‹œ์˜ค.

5599๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์ตœ์ข… ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋„์›€์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ์ผ ์œ„์น˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ๋ฌธ์ œ์˜ ์˜๊ฒฌ ์„น์…˜์€ ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ๋ฌธ์ œ ๋ฐ ์†”๋ฃจ์…˜์— ๋Œ€ํ•ด ๋…ผ์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. :)

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