python-dev 설치 오류:가져오기 오류: 이름이 apt_pkg인 모듈이 없습니다.
저는 Debian 사용자이고 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
무엇이 문제인 것 같으며 어떻게 해결해야 합니까?
는 이 를 할 때 접했습니다.sudo apt-get update
저의 환경은 debian8로, python2.7 + 3.4 (기본값) + 3.5입니다.
는 다코드다다생성다니합시음만음는▁re▁acreate만 다시 됩니다.apt_pkg....so
3.5x3
sudo apt-get install python3-apt --reinstall
다음 코드가 제 문제를 해결했습니다.
- 에 가다
dist-packages
cd /usr/lib/python3/dist-packages
- 적한위찾을 찾습니다.
.so
시스템에 설치된 파이썬 버전의 파일:
ls -l | grep apt_pkg
- 기호 링크 만들기:
sudo ln -s apt_pkg.cpython-{your-version-number}-x86_64-linux-gnu.so apt_pkg.so
- 를 바꿉니다.
{your-version-number}
적당하게.
주의, 다음은 apt_pkg37m에서 apt_pkg36m로 심볼릭 링크를 만듭니다. 올바른 버전 또는 적어도 기존 버전에 링크하고 있는지 확인하십시오.ls apt_pkg.cpython-*
설치한 항목을 확인합니다.
sudo ln -s apt_pkg.cpython-{35m,34m}-x86_64-linux-gnu.so apt_pkg.so
, 그럼, 분히명,python3-apt
사용 중인 현재 파이썬 버전 대신 가장 높은 파이썬 버전을 확인합니다.
이러한 현상이 발생하는 이유를 이해하려면 아래의 답변을 참조하십시오. https://stackoverflow.com/a/64241654/21539
이를 통해 문제를 해결:
cd /usr/lib/python3/dist-packages
cp apt_pkg.cpython-34m-i386-linux-gnu.so apt_pkg.so
또는:
cd /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.2에서 Deadsnakes repo에서 Python 3.7을 설치하려고 시도한 후에 이런 일이 발생했습니다.
솔루션은 다음과 같습니다.
1)cd /usr/lib/python3/dist-packages/
2)sudo ln -s apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so
작동하는 python-apt 패키지가 있는지 확인합니다.해당 패키지를 다시 제거하고 설치하여 apt_pkg.의 문제를 해결하여 찾을 수 없게 할 수 없습니다.
apt-get install python-apt
이 오류는 최신 버전의 파이썬이 이전 버전과 함께 설치되었을 때 종종 발생합니다.
- Ubuntu 18.04.1은 python 버전 3.6.6과 함께 제공됩니다.
- 설치된 ppa: dead snake/python 3.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, apt, apt, python3, apt, apt, apt, apt, python3, apt, python3, apt 등이 됩니다./usr/lib/python3
.
대부분은 괜찮겠지만, 상황에 따라 다른 python 버전과는 다른 라이브러리나 공유 객체/라이브러리에 의존하기 때문에 다른 답변에서 지적했듯이 .SO를 올바른 python 버전에 연결해야 합니다.따라서 64비트 시스템에 python3.6이 설치되어 있다면 apt_pkg.SO 링크는
sudo ln -s apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so
그러나 문제는 새로운 파이썬 버전을 설치할 때 링크가 최신 파이썬 버전을 가리키도록 업데이트된다는 점이며, 이로 인해 apt_pkg 모듈을 찾을 수 없다는 오류가 발생합니다.어떤 버전의 파이썬이 디스트리뷰터와 함께 제공되는지 확인하면 위와 같이 링크를 만들 수 있습니다.또는 다음과 같은 .SO를 연결하기 위한 python 버전을 선택할 수 있는 방법을 명령을 제공합니다.
sudo ln -s apt_pkg.cpython-{36m,35m,34m}-x86_64-linux-gnu.so apt_pkg.so
python은 최신 설치된 python 버전에 대한 이 링크를 만들기 때문에 명령어에 3개의 python 버전 중에서 선택할 수 있는 옵션을 제공하며, 그 중에서 가장 높은 버전을 선택합니다.
이상한 복사 등으로 고치는 방법을 말하는 사람은 다 보이는데, 왜 문제가 발생하는지는 아무도 제대로 말하지 않았습니다.
저를 좋아하는 분들은 SO의 누군가가 그렇게 말했다고 해서 시스템 파일이 엉망이 되는 것을 원치 않으실 것을 설명하겠습니다.
문제는 다음과 같습니다.
- 많은 시스템 스크립트에는 python3 shebang 하드코드가 있습니다.직접 확인할 수 있습니다.
~$ grep -R "\#\!/usr/bin/python3" /usr/lib/*
/usr/lib/cnf-update-db:#!/usr/bin/python3
/usr/lib/command-not-found:#!/usr/bin/python3
/usr/lib/cups/filter/pstotiff:#!/usr/bin/python3
/usr/lib/cups/filter/rastertosag-gdi:#!/usr/bin/python3 -u
grep: /usr/lib/cups/backend/cups-brf: Permission denied
/usr/lib/cups/backend/hpfax:#!/usr/bin/python3
/usr/lib/language-selector/ls-dbus-backend:#!/usr/bin/python3
/usr/lib/python3/dist-packages/language_support_pkgs.py:#!/usr/bin/python3
/usr/lib/python3/dist-packages/softwareproperties/MirrorTest.py:#!/usr/bin/python3
/usr/lib/python3/dist-packages/cupshelpers/installdriver.py:#!/usr/bin/python3
/usr/lib/python3/dist-packages/cupshelpers/openprinting.py:#!/usr/bin/python3
/usr/lib/python3/dist-packages/cupshelpers/xmldriverprefs.py:#!/usr/bin/python3
/usr/lib/python3/dist-packages/cupshelpers/smburi.py:#!/usr/bin/python3
/usr/lib/python3/dist-packages/cupshelpers/ppds.py:#!/usr/bin/python3
/usr/lib/python3/dist-packages/cupshelpers/debug.py:#!/usr/bin/python3
/usr/lib/python3/dist-packages/DistUpgrade/dist-upgrade.py:#!/usr/bin/python3
/usr/lib/python3/dist-packages/CommandNotFound/db/creator.py:#!/usr/bin/python3
/usr/lib/python3/dist-packages/CommandNotFound/db/db.py:#!/usr/bin/python3
/usr/lib/python3/dist-packages/Quirks/quirkreader.py:#!/usr/bin/python3
grep: /usr/lib/ssl/private: Permission denied
/usr/lib/system-service/system-service-d:#!/usr/bin/python3
/usr/lib/ubuntu-release-upgrader/check-new-release-gtk:#!/usr/bin/python3
/usr/lib/ubuntu-release-upgrader/do-partial-upgrade:#!/usr/bin/python3
/usr/lib/ubuntu-release-upgrader/check-new-release:#!/usr/bin/python3
/usr/lib/update-notifier/package-data-downloader:#!/usr/bin/python3
/usr/lib/update-notifier/backend_helper.py:#!/usr/bin/python3
/usr/lib/update-notifier/apt_check.py:#!/usr/bin/python3
/usr/lib/update-notifier/apt-check:#!/usr/bin/python3
- 패키지 python apt 키지
python-apt
/python3-apt
에 대한
는 항상 따서스항현상연버가져다에 연결된 .python3
적절한 패키지가 없기 때문에 실패합니다.
일반 솔루션: 기본 링크를 변경하지 마십시오. Ever. 이것은 또한 적용됩니다.python
링크 - Python3에서 작동하지 않는 일부 오래된 구문 요소로 Python2에서 앱이 작성된 경우 앱이 작동하지 않습니다.
[터미네이터를 사용하기 때문에 터미널이 그렇게 부서졌는데, 이 터미네이터는 Python2.7과 호환되지 않습니다.]
여기에 제시된 솔루션은 적절한 패키지 파일을 복사/연결하거나 변경하는 것을 제안합니다.python3
링크를 걸다
두 가지를 모두 분석해 보겠습니다.
- 적절한 패키지 복사/연결
Python 3.4 정도부터 모든 Python 스크립트가 최신 버전에서도 작동하기 때문에 이것은 문제가 되지 않습니다.
지금까지는요. 하지만 시스템을 충분히 오래 유지한다면 미래에는 고장이 날 수도 있습니다.
- 중
python3
이는 "링크를 절대 변경하지 않음"으로 돌아갈 수 있기 때문에 훌륭한 솔루션입니다.
"하지만 저는 타자 치는 것을 좋아합니다!" - 저도 좋아합니다!애초에 그렇게 해서 이 문제에 도달했어요!
일반적으로 시스템 링크를 수동으로 변경하지 않아야 합니다. 다른 버전을 연결하는 데 사용합니다.이는 여러 버전이 있는 모든 앱에 적용됩니다.링크를 변경하기 때문에 이러한 시스템 스크립트는 여전히 손상되지만 링크와 대상을 올바른 순서로 배치했는지 또는 오타를 냈는지에 대한 걱정 없이 쉽게 전환할 수 있습니다.
다음과 같은 다른 이름 사용 고려
python
/python3
사용자의 링크 또는 별칭입니다.또는 자신의 것을 추가합니다.
python
/python3
시스템 링크를 변경하지 않고 PATH에 연결할 수 있습니다(가상 환경과 동일).
이것은 Ubuntu18.04에서 python3.7을 업데이트한 후에 저에게 효과가 있었습니다.
cd /usr/lib/python3/dist-packages
sudo cp apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so
@user8178061의 솔루션은 잘 작동했지만 저는 제 버전인python3.7
Ubuntu와 함께
교체했습니다.apt_pkg.cpython-3m-i386-linux-gnu.so
와 함께apt_pkg.cpython-36m-x86_64-linux-gnu.so
여기서 실행할 두 가지 명령이 있습니다.
cd /usr/lib/python3/dist-packages
sudo cp apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so
기본 Python 3 버전을 확인합니다.
python3 --version Python 3.7.5
cd
안으로/usr/lib/python3/dist-packages
그리고 확인합니다.apt_pkg.*
파일입니다. 기본 Python 버전에는 파일이 없습니다.ll apt_pkg.* apt_pkg.cpython-36m-x86_64-linux-gnu.so
기호 링크를 만듭니다.
sudo ln -s apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.cpython-37m-x86_64-linux-gnu.so
만약 당신이 파이썬 3.7을 사용하고 있다면 대안을 업데이트하여 파이썬 3.6으로 다운그레이드하면, 이것은 나에게 효과가 있었습니다.
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --config python3
제 경우 아래 명령을 실행하여 오류를 해결했습니다.
sudo apt install --reinstall python3 python python3-minimal --fix-broken
어떤 이유로 인해 설치가 누락되었습니다.apt_pkg.so
python3 dist-dist-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
업그레이드가 중단된 것인지 아니면 왜 업그레이드가 중단된 것인지 잘 모르겠습니다.업그레이드를 시도한 후 발생했습니다(정밀->raring->quantal upgrade
최후의 수단은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 버전만 사용하는 경우.
Ubuntu 16.04를 사용하고 있으며 Python 3.7로 업그레이드되었습니다.다음은 PPA를 추가할 때 발생한 오류입니다.
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
Traceback (most recent call last):
File "/usr/bin/add-apt-repository", line 11, in <module>
from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 27, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
초기 파이썬 3.4로 심볼릭 링크를 만들어 이 오류를 해결할 수 있었습니다.apt_pkg.cpython-34m-x86_64-linux-gnu.so
과 같은 링크를 으로써.
sudo ln -s apt_pkg.cpython-34m-x86_64-linux-gnu.so apt_pkg.so
파이썬 3.5를 사용하는 경우 3.4로 다운그레이드합니다.그게 가장 안전한 방법입니다.
/usr/lib/python3/dist-packages
수 있을 *34m*
파이썬 3.5는 사용할 수 없습니다. zazha는 심볼릭 링크에 답합니다.
상징적인 링크를 만드는 것 외에도apt_pkg.so
당신은 만들고 싶을지도 모릅니다.apt_inst.so
apt_pkg.so
.
ln -s apt_inst.cpython-35m-x86_64-linux-gnu.so apt_inst.so
저는 링크를 만들려고 했지만 다른 많은 문제들이 발생했습니다.따라서 다음을 사용하여 이전 버전의 python을 선택하여 설치할 수 있습니다.
sudo update-alternatives --config python3
그리고 동일한 명령을 사용한 후 바로 원하는 버전으로 돌아갑니다.효과가 있기를 바랍니다.
Windows 10 WSL v1(Ubuntu 16.04.6 LTS)
이 레딧 답변(약간 수정된 것이 나에게 효과가 있었습니다)
sudo ln -sfn /usr/lib/python3/dist-packages/apt_pkg.cpython-35m-x86_64-linux-gnu.so apt_pkg.so
4시간을 보낸 후에 나는 마침내 나에게 효과가 있는 이 해결책을 얻었습니다. 나는 이것이 도움이 되기를 바랍니다...
이전 python 버전에서 업그레이드할 때 일부 패키지가 이전 버전 경로에 유지되는 경우가 있다는 것을 이해하는 것이 중요합니다. 그래서 제가 한 일은 다음과 같습니다.
cd /usr/lib/python3/dist-packages
라는 파일이 합니다.apt_pkg.cpython-35m-x86_64-linux-gnu.so
또는 때 또는 34m 또 36m ▁the▁or▁current▁delete▁and다▁you를 삭제합니다.apt_pkg.so
줄을 지어 들어가다
/usr/lib/python3/dist-packages
으로 마막으다사음용올경링만바듭다니크로를을 사용하여 .apt_pkg.so
다음과 같이:
cd /usr/lib/python3/dist-packages
sudo ln -s apt_pkg.cpython-35m-x86_64-linux-gnu.so apt_pkg.so
이제 다시 시도할 수 있고 효과가 있을 것입니다.
이 변종은 저에게 효과가 있습니다.
cd /usr/lib/python3/dist-packages
ls -la /usr/lib/python3/dist-packages
sudo cp apt_pkg.cpython-38-x86_64-linux-gnu.so apt_pkg.so
아래와 같이 심볼 링크 수준이 너무 많다는 오류 메시지가 표시되는 경우:
cp: failed to access '/usr/lib/python3/dist-packages/apt_pkg.so': Too many levels of symbolic links
그런 다음 apt_pkg.so 파일의 링크를 간단히 해제해야 합니다.다음 명령을 사용합니다.
sudo unlink apt_pkg.so
그런 다음 명령을 사용합니다.
sudo cp apt_pkg.cpython-38-x86_64-linux-gnu.so apt_pkg.so
행운을 빕니다.
원답: https://askubuntu.com/a/1227625
저는 Ubuntu 16.04와 Python 3.6을 사용하고 있습니다.그래서 저는 마침내 다음과 같이 문제를 해결했습니다.
1 - 서버의 FTP에 연결합니다.
2- 폴더 "/usr/lib/sys3/dist-sys/"로 이동합니다.
"apt_pkg.cpython-35m-x86_64-linux-gnu.so " 파일을 3번 복제합니다.
4- 이 중복된 파일의 이름을 "apt_pkg.cpython-36m-x86_64-linux-gnu.so "로 변경합니다.
바로 그거야!
저에게 가장 깨끗한 해결책은 관련 라이브러리를 새로운 파이썬 버전으로 특정 공간에 재구축하는 것입니다.
저는 지금 Python 3.9에서 Python 3.10.1로 바꾸고 있습니다.
그래서:
cd /tmp/ apt source python3-apt cd python-apt-version-ecc python3-new-version setup.py build python3-new-version setup.py install
패키지 package)로도 이 했습니다.software-properties
,python-launchpadlib
지금은 등등고지, 그금리지금▁and▁and),.add-apt-repository
아주 잘 작동합니다.
다시 컴파일할 항목은 무엇입니까?달리기에 대한 불만 사항을 주의하십시오.add-apt-repository
.
그건 그렇고, 나는.Ubuntu 21.04
하지만 논리는 데비안과 같은 시스템에서 동일합니다.
다음 문서를 검토하십시오.
그것은 당신이 그 문제를 해결하는 데 도움이 될 수 있습니다.
ModuleNotFoundError로 python 버전을 바꾸는 문제 해결: 'apt_pkg'이라는 모듈이 없습니다.
로케일 변수를 설정하여 이 문제를 해결하십시오.
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
다른 사람에게 도움이 될까봐 python 버전 충돌로 인해 발생한 이 문제를 python3 링크를 리디렉션한 다음 올바른 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
'programing' 카테고리의 다른 글
루비 온 레일즈에서 "10월 5일 일요일"과 같이 "th" 접미사로 날짜 형식을 지정하려면 어떻게 해야 합니까? (0) | 2023.06.15 |
---|---|
Oracle에서 varchar를 별도의 열로 분할 (0) | 2023.06.15 |
Django 모델 생성 또는 업데이트(있는 경우) (0) | 2023.06.10 |
Python 요청이 자체 서명된 SSL 인증서를 신뢰하도록 하는 방법은 무엇입니까? (0) | 2023.06.10 |
VBA가 엑셀에서 MySQL 데이터베이스에 어떻게 연결할 수 있습니까? (0) | 2023.06.10 |