Pip3 ImportError 실행 중 : 'main'이름을 가져올 수 없습니다


21

Scipy를 설치하고 싶습니다 (Numpy가 이미 설치되어 있습니다). OS 및 IDLE3 (3.5.2)과 함께 Python 3.5.1-3이 설치되어 있습니다. 터미널을 쳤을 때

sudo pip3 install scipy

인쇄

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

이미 pip3을 다시 설치하고 OS를 다시 시작하려고 시도했지만 변경되지 않았습니다. pip3가 다른 사람과 이상하게 일하고 있습니까?

답변:


10

numpy와 scipy는 현재 지원되는 모든 Ubuntu 버전의 기본 리포지토리에 있습니다. Python 3.x 용 numpy 및 scipy를 설치하려면 터미널을 열고 다음을 입력하십시오.

sudo apt update    
sudo apt install python3-numpy python3-scipy  

Python 2.x의 경우 다음과 같습니다.

sudo apt update  
sudo apt install --no-install-recommends python2.7-minimal python2.7 # this line is only necessary for Ubuntu 17.10 and later 
sudo apt install python-numpy python-scipy

1
python3-scipy는 정상적으로 작동했습니다. 감사!
Invertible Hog Dog

1
다른 답변에서 알 수 있듯이이 답변은 기본 문제와 관련이 없으며 pip와 관련이 있습니다.
cjauvin

나쁜 방법입니다 ...
darkwoolf

26

python -m pip install대신에 사용pip install

예:

python -m pip install --user somepackage
python3 -m pip install --user somepackage

pip업그레이드 후이 문제가 발생하기 시작했습니다 .

pip install --upgrade --user pip

pip(RESP. pip3) 실행 파일은 배포판 (에 의해 제공됩니다 python-pip우분투 16.04에 패키지).

따라서 pippip를 업그레이드 할 때 패키지 자체 가 최신 상태로 유지되지 않아 중단 될 수 있습니다.

다음 python -m pip과 같이 직접 사용하는 경우 :

python -m pip install --user somepackage
python3 -m pip install --user somepackage

파이썬 경로를 통해 최신 버전의 pip를 찾아 해당 파일을 실행합니다.

파일은 실행 가능하지만 매우 표준 유형의 인터페이스이므로 해커 데비안 스크립트보다 깨질 가능성이 적습니다.

그런 다음 다음 별칭을 추가하는 것이 좋습니다 .bashrc.

pip() ( python -m pip "$@" )
pip3() ( python3 -m pip "$@" )

Ubuntu 18.04 /usr/bin/pip3파일은 다음을 수행합니다.

from pip import main

아마도 파산 한 지점에서 main제거 되었을 pip것입니다.

주요 pip 커밋은 다음과 같습니다. 95bcf8c5f6394298035a7332c441868f3b0169f4 " pip 18.0에 들어간 모든 내부 API를 pip._internal로 이동"

pip39.0.1에서 18.0로 업데이트 한 후 Ubuntu 16.04에서 테스트되었습니다 .

pyenv

그러나 궁극적으로 심각한 파이썬 개발을 위해서는 pyenv + virtualenv로 자체 로컬 파이썬을 설치하는 것이 좋습니다.이 우분투 버그를 해결할 수도 있습니다. apt-get을 사용하여 다른 파이썬 버전을 어떻게 설치합니까?


1
그래서 이것은 효과가 있지만 여기서 머리를 흔드는 유일한 사람은 될 수 없습니다. 고장은 어디에 있습니까? 기본 pip 업그레이드가 계속 작동하는 방식으로 새 pip를 설정하지 못하는 이유는 무엇입니까?
Steven Lu

@StevenLu 내 이해는 /usr/bin/pipUbuntu Python 패키지에서 제공되며 pip덮어 쓰지 않습니다. 그러나 자체적 pip update으로 관리되며 pipUbuntu 파일을 건드리지 않습니다.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

안녕 여기 같은 경험. Pip3은 내가 한 일에 상관없이 작동하지 않습니다. 이 솔루션은 작동하지만 어떻게됩니까 ?? python pip 스크립트는 다음과 같이 준비합니다 Debian.- 주석에 따르면 : 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. Python 방식으로 Python을 올바르게 설치할 수 있습니다.
것이다

@ 그 문서 의견에 대해 잘 모르겠지만, 코드가 무엇을하는지 확신합니다 /usr/bin/pip:-)
Ciro Santilli 新 中心 法轮功 六四 事件

20

버그는 pip 10.0.0에 있습니다.

리눅스에서는 / usr / bin / pip 파일을 다음에서 수정해야합니다.

from pip import main
if __name__ == '__main__':
    sys.exit(main())

이에:

from pip import __main__
if __name__ == '__main__':
    sys.exit(__main__._main())

대안의이 스타일은 않는 것이 좋습니다 것 같지 의해 pip팀.
jdk1.0

당신은 내 하루를 구했다!!
Saurabh Singh

8

나는 같은 문제가 있었지만 apt 및 pip로 제거하고 다시 설치하지 못했습니다.

pip3 경로를 쉽게 복구 할 수있는 다른 솔루션을 보았습니다.

sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall

이것은 내 버전의 pip3을 19.0.3에서 8.1.1로 다운 그레이드했지만 증상이 수정되었습니다.
호크 아이 파커

6

karel이 "설치 numpy 및 scipy"문제를 해결했을 수도 있지만 시스템의 pip에 대한 문제는 해결되지 않았으므로 pip에 대해서는 더 많은 문제가 발생할 수 있습니다.

여기를 보면 Ubuntu 시스템에서 pip 10의 최근 문제인 것 같습니다. 해당 스레드에서 작동하는 일부 해결 방법을 찾을 수 있지만 업데이트를 통해 곧 해결할 수 있습니다.


실제로 문제를 해결하고 부분적으로 만 그리고 한 사람에게만 문제를 해결하는 해결 방법을 제공하지 않은 것에 대해 감사드립니다.
Caleb Fenton

2

apt와 pip 자체에서 pip를 설치하면 이것이 발생할 수 있습니다.

필자의 경우 Ubuntu의 pip 패키지를 사용하여 pipenv를 설치 한 다음 최신 pip 사본을 설치했습니다. 내 쉘이 Ubuntu의 pip 9 스크립트를 실행하기 때문에 (실행을 확인하기 위해)which pip3 하고 파이썬 인터프리터가 pip 10 모듈을 가져 오기 때문에 pip3 명령이 실패합니다. 그래서 둘 중 하나를 제거하고 싶습니다.

당신이 새로운 핍을 가지고 있다고 가정하는 것이 공정합니다. 이 경우 이전 pip를 다음과 같이 제거하십시오.

sudo apt remove python3-pip

이전 pip에 대해 잘 알고 있고 시스템 패키지를 선호하는 경우 최신 패키지를 제거하고 싶을 것입니다.

~/.local/bin/pip3 uninstall pip

아니면 실패

sudo /usr/local/bin/pip3 uninstall pip



1

github 페이지 에 표시된 것처럼 pip를 강제로 다시 설치하면 대부분의 사용자에게 잘 작동 합니다.

python -m pip install --force-reinstall pip

감사합니다. 당신이 일을하는 반면 이전의 모든 답변은 비참하게 실패
Pynchia

0

내 문제는 python3.6과 3.7 사이의 불일치였습니다. python3.6 설치 /usr/bin/python3 -> /usr/bin/python3.6는 시스템이 python3.7로 업그레이드되었지만 링크를 연결했습니다 .

sudo apt purge python-pip
sudo apt purge python3-pip
sudo apt install python3.7 --reinstall
cd /usr/bin
sudo rm python3
sudo ln -s python3.7 python3
python3 --version
pip3 --version

-1

이것은 나를 위해 일했다 :

pip install --upgrade --user pip

하여 install --upgrade, 나는 당신이 설치하려는 어떤 의미한다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.