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....so
python 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.so
python3 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.so
apt_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
'developer tip' 카테고리의 다른 글
AngularJS에서 라디오 버튼의 기본값을 설정하는 방법은 무엇입니까? (0) | 2020.12.27 |
---|---|
Ubuntu에서 SmartGit 설치 및 사용 (0) | 2020.12.26 |
Django CSRF 프레임 워크를 비활성화 할 수 없으며 내 사이트가 중단됩니다. (0) | 2020.12.26 |
부트 스트랩 4의 popper.js는 SyntaxError 예기치 않은 토큰 내보내기를 제공합니다. (0) | 2020.12.26 |
활동 수명주기-모든 방향 변경시 onCreate 호출 (0) | 2020.12.26 |