๊ด๋ฆฌ์ ์ฐธ๊ณ ์ฌํญ: ์ฌ์ ํ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ์ฌ๋์ #5599๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
ํ๊ฒฝ
sas@sas-linuxmint /usr/bin $ pip3 install --user --upgrade 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
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
ImportError: cannot import name 'main'
sas@sas-linuxmint /usr/bin $ pip3 install --upgrade pip
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
๊ฐ์ ๋ฌธ์
๊ฐ์ ๋ฌธ์
์ด๊ฒ์ #5221๊ณผ ๋์ผํฉ๋๋ค.
@pradyunsg ์ ์ด๊ฒ์ ๋ซํ ๋ฌธ์ ์ ์ค๋ณต์ผ๋ก ํ์ํฉ๋๊น? ์ฌ์ ํ ๋ฌธ์ ๋ผ๋ฉด ๋ถ๋ช ํ ๋ซํ์ง ์์์ต๋๋ค ...
@sydanny : https://github.com/pypa/pip/issues/5221#issuecomment -382069604
์ด ๊ฒฝ์ฐ ํน์ ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
pip3 install --user --upgrade pip
๋ ์ฌ์ฉ์ ์ฌ์ดํธ์ pip 10์ ์ค์นํ์ง๋ง pip์ ์์คํ
์ฌ์ดํธ ์ฌ๋ณธ์ ์ ๊ฑฐํ์ง ์์ต๋๋ค./usr/bin/pip3
์์ ์์คํ
๋ํผ๋ฅผ ์คํํฉ๋๋ค. ์ด ๋ํผ๋ pip 8์ ๋ณผ ๊ฒ์ผ๋ก ์์ํ์ง๋ง ์ฌ์ฉ์ ์ฌ์ดํธ๊ฐ ์์คํ
์ฌ์ดํธ๋ณด๋ค ์ฐ์ ํ๊ธฐ ๋๋ฌธ์ ๊ทธ๋ ์ง ์์ต๋๋ค.ํด๊ฒฐ์ฑ
์ --user
pip 10์ ์ค์นํ ๋ ์ค์น๋ pip ๋ํผ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค. ์ด๋ PATH๋ฅผ ๋จผ์ ๋ณ๊ฒฝํ๊ฑฐ๋ pip๋ฅผ ํธ์ถํ ๋ ๋ช
์์ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๊ธฐ์ ์ ์ผ๋ก ์ฌ๊ธฐ์ ๋ฌธ์ ๋ ์ฌ์ฉ์๊ฐ ์์คํ pip๋ฅผ ๋ฎ์ด์ฐ๋ ๋ฌธ์ ์์ #5221๊ณผ ์ฝ๊ฐ ๋ค๋ฆ ๋๋ค. ๊ทธ๋ฌ๋ ๊ทผ๋ณธ ์์ธ์ ๋์ผํฉ๋๋ค. ์ฆ, ์ต์ ๋ฒ์ ์ pip์ ๋ํด ์ด์ pip ๋ํผ(OS์์ ์ ๊ณต)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ์ง์๋๋ ์๋๋ฆฌ์ค๊ฐ ์๋๋ฉฐ pip๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๋ฉด ๋ง๋ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ pip ๋ฌธ์ ๊ฐ ์์ผ๋ฏ๋ก ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์ข ๋ฃํฉ๋๋ค. ์๋ชป๋ ์ ๊ทธ๋ ์ด๋ ํ ์์คํ ์ ์ ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋๋ถ๋ถ์ ์กฐ์ธ์ด ์๋ #5221๋ก ์ฌ์ฉ์๋ฅผ ์๋ดํ๊ณ ์์ต๋๋ค.
https://github.com/pypa/pip/issues/5221#issuecomment -381568428์ด ์ ์๊ฒ ํจ๊ณผ์ ์ด์์ต๋๋ค.
thang@cq-gpu :/mnt/tmp/tqdscripts/azure/nvtf$ pip3 ์ค์น --user --upgrade pip
์ญ์ถ์ (๊ฐ์ฅ ์ต๊ทผ ํธ์ถ ๋ง์ง๋ง):
ํ์ผ "/usr/bin/pip3", 9ํ,
ํ ๊ฐ์ ธ์ค๊ธฐ ๋ฉ์ธ์์
ImportError: 'main' ์ด๋ฆ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋๋ฅผ ์ํด ์๋ฌด๊ฒ๋ํ์ง ์์ต๋๋ค. ์ฌ์ ํ ๊ฐ์ ๋ฌธ์ ์ ๋๋ค.
#5599 ๋ฐ ๊ฑฐ๊ธฐ์ ์ฐ๊ฒฐ๋ ๋ฌธ์ ๋ฅผ ์ดํด๋ณด์ญ์์ค.
hash -d pip
๋๋ฅผ ์ํด ์ผํ๋ค
pip๋ฅผ ์ ๊ฑฐํ๊ณ ๋ค์ ์ค์นํ์ต๋๋ค. ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์์ง๋ง apt ๋ฐ pip๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ฑฐํ๊ณ ๋ค์ ์ค์นํด๋ ์๋ํ์ง ์์์ต๋๋ค.
pip3 ๊ฒฝ๋ก๋ฅผ ์ฝ๊ฒ ๋ณต๊ตฌํ ์ ์๋ ๋ ๋ค๋ฅธ ์๋ฃจ์ ์ stackoverflow ์์ ๋ณด์์ต๋๋ค.
sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
์๋
, ์น๊ตฌ๋ค! ๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์๊ณ ๊ทธ๊ฒ์ ํด๊ฒฐํ๋ค. ์ฌ๊ธฐ ๋ด ์๋ฃจ์
์ด ์์ต๋๋ค.
๋จผ์ pip install ๋ฌด์ธ๊ฐ๋ฅผ ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
`Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
`
๋ฐ๋ผ์ /usr/bin/ ๋ฐ cat pip3 ํ์ผ๋ก cdํ์ฌ ๊ทธ ์์ ์๋ ์ฝ๋๋ฅผ ํ์ธํฉ๋๋ค. ๋๋ ์ด๊ฒ์ ๋ณธ๋ค:
`#!/usr/bin/python3
# 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())
`
๊ทธ๋ฐ ๋ค์ ์ค์น ๊ฒฝ๋ก์ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋์ ๋ค์๊ณผ ๊ฐ์ด python3-pip์ cdํฉ๋๋ค.
cd /.local/lib/python3.5/site-packages/pip
์ถ์ : ์ปดํจํฐ์์ ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ผ๋ก cdํด์ผ ํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ํ์ผ์ ๋ถ๋ฅํ์ฌ ์ฐจ์ด์ ์ ํ์ธํฉ๋๋ค(๋ค๋ฅธ ์์
์ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ๋ณผ ์ ์์).
cat __main__.py
๊ทธ๋ฆฌ๊ณ ๋๋ ์ด๊ฒ์ ๋ณด์๋ค:
`from __future__ import absolute_import
import os
import sys
# If we are running from a wheel, add the wheel to sys.path
# This allows the usage python pip-*.whl/pip install pip-*.whl
if __package__ == '':
# __file__ is pip-*.whl/pip/__main__.py
# first dirname call strips of '/__main__.py', second strips off '/pip'
# Resulting path is the name of the wheel itself
# Add that to sys.path so we can import pip
path = os.path.dirname(os.path.dirname(__file__))
sys.path.insert(0, path)
from pip._internal import main as _main # isort:skip # noqa
if __name__ == '__main__':
sys.exit(_main())
`
์, ์ฐจ์ด์ ์ด ๋ณด์ด์๋์? ํ์ผ์ /usr/bin/pip3์ ํ์ผ๊ณผ ๋์ผํ๊ฒ ๋ง๋ค์ด์ผ ํ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
๊ทธ๋์ /usr/bin/pip3์ ์ฝ๋๋ฅผ ๋์ฒดํ๊ธฐ ์ํด /.local/lib/python3.5/site-packages/pip์ ์ฝ๋๋ฅผ ๋ณต์ฌํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฌธ์ ๊ฐ ์ฌ๋ผ์ง๋๋ค!
ps: pip3 ๋๋ pip๋ ์ด ๋ฌธ์ ์์ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
๋ด ์๋ฃจ์
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ฉด ๊ธฐ์ ๊ฒ์
๋๋ค!
pip3 ์ฌ์ฉ:+1:
๋น์ ์ ์ฌ์ฉ์ ์๋ํด์ผ
python3 -m pip install --user "ํจํค์ง ์ด๋ฆ"
@linpanusst ๊ฐ ๋ง์ต๋๋ค.
sudo ln -sf $( type -P pip ) /usr/bin/pip
๋์ผํ ๋ฌธ์ ๊ฐ ์ฌ๊ธฐ์์ ์ง์๋ฉ๋๋ค. ๋ํ OS, 15.7. ํฅ๋ฏธ๋ก์ด ์ ์ ์ผ๋ฐ ์ฌ์ฉ์๋ก์ ์คํจํ์ง๋ง sudo์์๋ ์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
$ pip3 search audioshare
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
$ sudo pip3 search librosa
librosa (0.6.2) - Python module for audio and music processing
์ ์๋ ํด๊ฒฐ ๋ฐฉ๋ฒ sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
์ ์ฐจ์ด๊ฐ ์์์ต๋๋ค.
stackoverflow์ ๊ฒ์๋ ์๋ฃจ์
์ ๋ฐ๋ฅด๋ฉด /usr/bin/pip3
ํธ์ง์ ์ผ๋ฐ ์ฌ์ฉ์ sudo
๋ ์ค๋จ๋ฉ๋๋ค.
$ sudo pip3 search librosa
Traceback (most recent call last):
File "/usr/bin/pip3", line 13, in <module>
sys.exit(__main__._main())
AttributeError: module 'pip.__main__' has no attribute '_main'
#5599 ๋ฐ ๊ฑฐ๊ธฐ์ ์ฐ๊ฒฐ๋ ๋ฌธ์ ๋ฅผ ์ดํด๋ณด์ญ์์ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
hash -d pip
๋๋ฅผ ์ํด ์ผํ๋ค