ImportError : windows7 32 비트에서 pip --version 명령을 실행할 때 main 이름을 가져올 수 없습니다


145

Windows 32 비트 용 pip 및 setuptools와 함께 제공되는 최신 Python (2.7.9)을 설치했습니다. pip 재설치를 시도했지만 문제가 지속됩니다.

pip --version관리자 cmd에서 실행 한 후 발생한 오류는 다음과 같습니다 .

Traceback (most recent call last):
 File "D:\Python\lib\runpy.py", line 162, in _run_module_as_main
  "__main__", fname, loader, pkg_name)
 File "D:\Python\lib\runpy.py", line 72, in _run_code 
  exec code in run_globals
 File "D:\Python\Scripts\pip.exe\__main__.py", line 5, in <module>
ImportError: cannot import name main

1
여기 에서 해결 된 python 3.4 관련 문제가있는 파일 권한과 관련이있을 수 있습니다 .
Kobi K

icacls 명령을 사용하여 해결 방법을 수행했지만 오류가 지속됩니다.
Woootiness

2
"easy_install -U pip"답변은 stackoverflow.com/questions/28031277/ 에서 제공합니다. unpack-url
J1MF0X

답변:


172

원래 질문은 2015 년의 것으로 보이지만이 '버그'는 설치하는 사용자에게도 영향을 미치는 것으로 보입니다 pip-10.0.0.

해결 방법은 수정하지 않지만 pippip 호출 방식을 변경하는 것입니다. 대신 호출 /usr/bin/pip전화를 pip파이썬을 통해. 예를 들어 아래 대신

pip install <package>

Python 버전 2 (또는 기본 Python 바이너리가 python) 인 경우 다음을 수행하십시오.

python -m pip install <package>

또는 파이썬 버전 3의 경우 :

python3 -m pip install <package> 

예,이 문제를 해결하기 위해 무엇을했는지 기억이 나지 않지만 다른 사람들을 위해 계속 열어두고 있습니다.
Woootiness

주어진 명령을 사용할 때 권한 오류가 발생했습니다 (catalinpopescu의 답변에 따라 pip를 변경 한 후에도 발생했습니다). 그러나 사용자 범위에 대한 패키지를 다운로드하려면 (관리 권한이 필요하지 않음) 다음을 사용하십시오. python3 -m pip install <package> --user (python3에서는 작동하지만 테스트되지는 않았지만 python2에서도 작동해야 함)
randmin

Mac에서 나를 도왔습니다.
찰스 로스

더 나은 답변. 소스 코드 수정은 늪입니다.
ozgur

이것은 정말 좋은 방법입니다. 또한 올바른 버전을 사용하고 있다는 확신을 쉽게 얻을 수 있습니다.python2 -m pip install $package
JamesTheAwesomeDude

257

버그는 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())

1
이것이 해결책 인 것 같습니다. 나는 이것을 시도했지만 지금까지 아무런 문제가 없습니다.
Khue

2
pip 10.0.1을 사용하고 있으며 버그가 여전히 있습니다. 해결책이 도움이되었습니다. 감사! 이 버그와 솔루션을 개발자에게 다시보고 했습니까?
Alexey Subach

7
이 솔루션은 효과가 있지만 pip자체 수정하지 마십시오 . pip대신 파이썬 에서 호출하려면 아래의 깨끗한 솔루션을 참조하십시오 .
Wan Bachtiar

1
"pip 10.0.1"에는 도움이되지 않습니다. pip --version pip 10.0.1 from /home/x/.local/lib/python2.7/site-packages/pip (python 2.7) 사용법 : sudo pip install tensorflow 출력 :Traceback (most recent call last): File "/usr/bin/pip", line 9, in <module> from pip import main ImportError: cannot import name main
user_x

3
다음에 다른 버전 (예 : 10.0.3)으로 업데이트 할 때 동일한 문제가 발생할 수 있으므로 @creepy_driver, 환경에 맞게 설치된 패키지를 수동으로 수정하는 것은 권장되지 않습니다. pip설치된 Python을 통해 실행하는 해결 방법은 적절한 환경을 올바르게 사용하도록 pip를 가리 킵니다.
완 바흐 티 아르

60

Ubuntu Server 16에서 python27과 동일한 문제가 있습니다. 이 시도:

변화

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

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

1
우분투 16.04에 근무
사 미라 Kumarasingha

이것은 좋은 생각이 아닙니다. @RichardElkins의 또 다른 답변에서 언급했듯이 "폴크는 설치 후 수정되지 않은 설치된 파일을 편집하는 데 시간을 낭비해서는 안됩니다"
juergi

20

Windows 10에서는 다음 명령을 사용하여 pip를 다운 그레이드했습니다.

python -m pip uninstall pip
python -m pip install pip==9.0.3

이것은 Linux 및 Mac에서도 작동합니다.


1
그것은 파이썬이어야합니다 -m pip install pip == 9.0.3
elelias 2018 년

@elelias 아, 나는 그것을 몰랐다. 말해 주셔서 감사합니다!
kiyah

1
python easy_install.py pip==9.0.3첫 번째 줄 이후에 pip를 찾을 수 없었기 때문에 해야했습니다 .
Suzanne

3
Linux 및 Mac에서도 작동합니다. pip / pip3 10이 고정 될 때까지 해결 방법입니다. 설치 후 수정되지 않은 설치된 파일을 편집하는 데 시간을 낭비해서는 안됩니다.
Richard Elkins 2016 년

업그레이드 후 경로 문제가 발생하여 다음과 같이 작동했습니다. sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall
webjockey

10

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

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

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

1
내가 경기 파이썬 2.7에 명령을 변경했다, 그래서 나는, 파이썬 2.7을했다 sudo는 파이썬 -m 핍 제거 핍 && sudo는 쉽다 파이썬 핍 --reinstall 설치
webjockey

우분투에서 완벽하게 작동하지만 난 그게 윈도우에서 작동하지 않습니다 생각
자키 벤츠

8

사용하여 pip를 다시 설치하여 문제를 해결했습니다. get-pip.py .

  1. 공식 링크에서 get-pip를 다운로드하십시오 : https://pip.pypa.io/en/stable/installing/#upgrading-pip
  2. commande를 사용하여 실행하십시오 python get-pip.py.

그리고 핍은 고정되어 완벽하게 작동합니다.


1
파이썬 get-pip-py을 파이썬으로 변경get-pip.py
YourFriend

1
완벽하게 일했습니다! 감사합니다.
Shambo

나를 위해 일했습니다. 감사합니다
Abhishek Kishore

2

MacOS에서 Homebrew를 통해 Python을 설치 한 경우 줄을 변경하십시오. /usr/local/opt/python/libexec/bin/pip

...에서

from pip.internal import main

from pip._internal import main

또는이 라이너를 사용하십시오 : sed -i '' "s/from pip import main/from pip._internal import main/" /usr/local/opt/python/libexec/bin/pip

설명:

이 문제는 내부 네임 스페이스를 아래로 이동하는 pip 버전 10의 변경 사항 main._internal과 homebrew에 의해 배치 된 bin 스크립트는 여전히 이전 위치 (버전 9에 있었음)에서 찾고 있습니다. 문제 및 일부 토론 https://github.com/pypa/pip/issues/5240


1

pip에 대한 하드 링크가 있고 PATH(예 : 여러 Python 버전이 설치된 경우) pip를 업그레이드하면이 오류가 발생할 수도 있습니다.

해결책은 하드 링크를 다시 생성하는 것입니다. 또는 하드 링크 사용을 중지하고 소프트 링크를 사용하십시오.


1
이 문제를 해결하는 방법?
user_x

1

Windows 10에서도 동일한 문제가 발생했습니다. PIP 19시스템에 이미 설치되어 있지만 표시되지 않았습니다. 오류는 No Module Found입니다.

python -m pip uninstall pip
python -m pip install pip==9.0.3

pip9.0.3으로 다운 그레이드 하면 잘 작동했습니다.



0

우분투 16.04에서 작동합니다. 1 단계:

 sudo gedit /home/user_name/.local/bin/pip

내용과 함께 파일이 열립니다 :

#!/usr/bin/python

# -*- 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())

변경 main으로 __main__그 아래에 표시되는 :

#!/usr/bin/python

# -*- 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__._main())

파일을 저장하고 닫습니다. 그리고 당신은 끝났습니다!


0

이 시도

#!/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.i
try:
    from pip import main
except ImportError:
    from pip._internal import main
if __name__ == '__main__':
    sys.exit(main())

0

우분투에서 작동하지만 Windows에서도 문제를 해결할 수있는 간단한 솔루션 :

그냥 전화

pip install --upgrade pip

0

이것은 python3.6을 사용하려고 할 때 우분투 18.04의 문제를 해결했습니다.

rm -rf ~/.local/lib/python3.6

테스트를 위해 폴더를 삭제하지 않고 mv를 사용하여 다른 위치로 폴더를 이동할 수 있습니다.

mv ~/.local/lib/python3.6 ./python3.6_old

0

터미널 리눅스를여십시오.

hash -d pip

안녕하세요 Carlos, 스택 오버플로에 오신 것을 환영합니다. 이 문제에 직면 한 다른 사용자를 돕기 위해이 명령의 기능과 문제를 해결하는 방법을 명확히하기 위해 답변을 추가 할 수 있습니다.
CyberJacob

0

우리의 경우 Python20을 사용하여 2020 년에이 문제에 대한 해결책은 Python 설치를 cloud-initVM을 인스턴스화 한 시작 스크립트 로 옮기는 것이 었습니다 .

VM의 수명주기 후반에 사용자가 호출 한 스크립트를 사용하여 Python을 설치하려고 할 때 동일한 오류가 발생했지만 동일한 Python 설치 코드를 cloud-init스크립트로 이동하면이 문제가 해결되었습니다.

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