developer tip

python-dev 설치 오류 : ImportError : apt_pkg라는 모듈이 없습니다.

copycodes 2020. 12. 26. 15:40
반응형

python-dev 설치 오류 : ImportError : apt_pkg라는 모듈이 없습니다.


저는 데비안 사용자이고 python-dev를 설치하고 싶지만 셸에서 루트로 코드를 실행할 때 :

# aptitude install python-dev

다음과 같은 오류가 발생합니다.

Traceback (most recent call last):       
  File "/usr/bin/apt-listchanges", line 28, in <module>
    import apt_pkg
ImportError: No module named apt_pkg

문제인 것 같고 어떻게 해결할 수 있습니까?


작동하는 python-apt 패키지가 있는지 확인하십시오. apt_pkg.so를 찾을 수없는 문제를 해결하기 위해 해당 패키지를 다시 제거하고 설치할 수 있습니다.

apt-get install python-apt

나는 할 때이 문제를 만났다 sudo apt-get update. 내 환경은 debian8이며 python2.7 + 3.4 (기본값) + 3.5입니다.

다음 코드는 apt_pkg....sopython 3.5 용 파일 만 다시 생성합니다.

sudo apt-get install python3-apt --reinstall

다음 코드는 내 문제를 해결했습니다.

cd /usr/lib/python3/dist-packages
sudo ln -s apt_pkg.cpython-{35m,34m}-x86_64-linux-gnu.so

따라서 python3-apt는 현재 사용중인 Python 버전 대신 가장 높은 Python 버전을 확인합니다.


다음과 같이 해결하십시오.

/usr/lib/python3/dist-packages# cp apt_pkg.cpython-34m-i386-linux-gnu.so apt_pkg.so

또는:

/usr/lib/python3/dist-packages# cp apt_pkg.cpython-35m-x86_64-linux-gnu.so apt_pkg.so

당신이 얻는 경우에 기본적으로, No such file or directory단지 ls올바른 이름을 얻으려고합니다.


이 오류는 최신 버전의 파이썬이 이전 버전과 함께 설치되었을 때 자주 발생합니다.

  • Ubuntu 18.04.1은 Python 버전 3.6.6과 함께 제공됩니다.
  • 설치된 ppa : deadsnakes / python3.7.1 또는 대안
  • apt_pkg 모듈을 사용하는 명령을 실행하면 다음과 같은 오류가 발생합니다.

        from CommandNotFound.db.db import SqliteDatabase
    File "/usr/lib/python3/dist-packages/CommandNotFound/db/db.py", line 5, in <module>
        import apt_pkg
    

apt와 함께 비 distro python3 버전을 설치할 때 공유 모듈 디렉토리를 python3의 디렉토리로 설정합니다 /usr/lib/python3.

대부분의 경우 괜찮을 것입니다. 그러나 어떤 상황에서는 다른 버전의 파이썬이 다른 파이썬 버전과 다른 라이브러리 또는 공유 객체 / 라이브러리에 의존하므로 다른 답변에서 지적했듯이 .SO를 올바른 파이썬 버전. 따라서 64 비트 시스템에 python3.6이 설치되어 있으면 apt_pkg .SO 링크는 다음과 같습니다.

sudo ln -s apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so

그러나 문제는 새로운 파이썬 버전을 설치할 때 링크가 최신 파이썬 버전을 가리 키도록 업데이트되어 apt_pkg 모듈을 찾을 수 없다는 오류가 발생한다는 사실에 있습니다. 배포판과 함께 제공되는 Python 버전을 확인하여 위와 같이 링크를 만들 수 있습니다. 또는 다음과 같은 .SO를 연결하기 위해 Python 버전을 선택할 수있는 명령을 제공하는 방법을 사용합니다.

sudo ln -s apt_pkg.cpython-{36m,35m,34m}-x86_64-linux-gnu.so apt_pkg.so

파이썬은 가장 최근에 설치된 파이썬 버전에 대한이 링크를 생성하기 때문에 우리는 주어진 가장 높은 버전을 선택할 3 가지 파이썬 버전 중에서 선택할 수있는 옵션을 명령에 제공합니다.


이것은 내가 deadsnakes 저장소에서 Python3.7을 설치하려고 시도한 후 Ubuntu 18.04.2에서 나에게 발생했습니다.

해결책은 이것이었습니다

1) cd /usr/lib/python3/dist-packages/

2) sudo ln -s apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so


어떤 이유로 내 설치가 apt_pkg.sopython3 dist-packages dir 에 누락되었습니다 . ( apt_pkg.cpython-33m-x86_64-linux-gnu.so거기 있었나요?!)하지만 심볼릭 링크를 만들어야했습니다 apt_pkg.so -> apt_pkg.cpython-33m-x86_64-linux-gnu.so./usr/lib/python3/dist-packages

업그레이드가 실패했는지 또는 왜 그런지 잘 모르겠습니다. 업그레이드 시도 후 발생 (정확-> 희귀-> 양적 업그레이드)


Python 3.5를 사용하는 경우 3.4로 다운 그레이드합니다. 이것이 가장 안전한 방법입니다.

에서 /usr/lib/python3/dist-packages당신을 볼 수 있습니다 *34m*3.5 사용할 수있는 파이썬. zhazha 대답 symlink 그것에.


최후의 수단이다 sudo cp /usr/lib/python3/dist-packages/apt_pkg.cpython-35m-x86_64-linux-gnu.so /usr/lib/python3/dist-packages/apt_pkg.cpython-36m-x86_64-linux-gnu.so경우 ln명령은 당신을 위해 너무 많이 또는 어떻게 든 마술 작동하지 않습니다.

cp위의 mv경우 하나의 Python 버전 만 사용하는 경우 에도 마찬가지 입니다.


에 대한 심볼릭 링크를 만드는 것 외에도 와 같은 방식으로 apt_pkg.so만들 수 있습니다 .apt_inst.soapt_pkg.so

ln -s apt_inst.cpython-35m-x86_64-linux-gnu.so apt_inst.so 

로케일 변수를 설정하여이 문제를 해결하십시오.

export LC_ALL="en_US.UTF-8"

export LC_CTYPE="en_US.UTF-8"

다른 사람에게 도움이되는 경우를 대비하여 python3 링크를 리디렉션 한 다음 올바른 Python 버전으로 리디렉션하여 Python 버전 충돌로 인해 발생한이 문제를 마침내 해결했습니다.

sudo rm /usr/bin/python3
sudo ln -s /usr/bin/python3.4

다음에서 찾은 올바른 Python 버전을 입력해야 할 수 있습니다.

python3 -V

참조 URL : https://stackoverflow.com/questions/13708180/python-dev-installation-error-importerror-no-module-named-apt-pkg

반응형