programing

가져오기 오류: 윈도우즈 732비트에서 pip --version 명령을 실행할 때 이름 main을 가져올 수 없습니다.

css3 2023. 7. 29. 08:48

가져오기 오류: 윈도우즈 732비트에서 pip --version 명령을 실행할 때 이름 main을 가져올 수 없습니다.

Windows 32비트용 pip 및 셋업 도구와 함께 제공되는 최신 파이썬(2.7.9)을 설치했습니다.PIP를 다시 설치해 보았지만 문제가 계속 발생합니다.

▁after▁error▁here를 실행한 후의 오류입니다.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

이 버그는 pip 10.0.0에 있습니다.

Linux에서 다음 위치에서 /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-10.0.0뿐만 아니라.

방법은 해결법수것않입다니를 수정하지 입니다.pip그러나 pip이 호출되는 방식을 변경합니다. 부르는 에./usr/bin/pip을 부르다pipPython 자체를 통해.예를 들어, 다음과 같은 경우가 있습니다.

pip install <package>

2 (는 Python version 2 (Python version 2)라고 함)python) 수행:

python -m pip install <package>

또는 Python 버전 3의 경우:

python3 -m pip install <package> 

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

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

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

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

저도 같은 문제가 있었지만 apt와 pip을 사용하여 제거하고 다시 설치하는 것이 저에게 맞지 않았습니다.

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

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

나는 파이프를 다시 설치하여 문제를 해결했습니다.get-pip.py.

  1. 공식 링크: https://pip.pypa.io/en/stable/installing/ #http-messages에서 get-messages를 다운로드합니다.
  2. commande를 사용하여 합니다.python get-pip.py.

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

홈브루를 통해 파이썬을 설치한 경우 MacOS에서 라인을 변경합니다./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그리고 홈브루가 배치한 빈 스크립트는 여전히 예전의 장소(버전 9에 있던 곳)에서 그것을 보고 있습니다.이슈 및 일부 토론 https://github.com/pypa/pip/issues/5240

연결하기 어려운 링크가 있는 경우PATH( Pip을 이할 수 ("python", "python", "python", "python") pip"과 같은 오류가 발생할 수 있습니다

해결책은 하드 링크를 다시 만드는 것으로 구성됩니다.또는 하드 링크 사용을 중단하고 소프트 링크를 사용하는 것이 더 좋습니다.

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

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

다운그레이드pip9.0.3으로 변경하는 것이 좋습니다.

PyCharm과 함께 Pip 10을 사용하는 데 유사한 문제가 있는 사람들은 여기에서 최신 버전을 다운로드하십시오.

이것을 먹어보세요.

#!/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())

Ubuntu와 함께 작동하지만 Windows에서도 문제를 해결할 수 있는 간단한 솔루션:

그냥 전화하세요.

pip install --upgrade pip

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

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

다음 테스트를 위해 삭제하는 대신 mv를 사용하여 폴더를 다른 위치로 이동할 수 있습니다.

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

터미널 Linux를 엽니다.

hash -d pip

우리의 경우, Python3를 사용하는 2020년에 이 문제에 대한 해결책은 Python 설치를cloud-initVM을 인스턴스화하는 시작 스크립트입니다.

VM의 수명 주기 후반에 사용자가 호출한 스크립트를 사용하여 Python을 설치하려고 할 때 동일한 오류가 발생했습니다. 그러나 동일한 Python 설치 코드를cloud-init스크립트에서 이 문제를 제거했습니다.

Ubuntu 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())

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

언급URL : https://stackoverflow.com/questions/28210269/importerror-cannot-import-name-main-when-running-pip-version-command-in-windo