업데이트 관리자 문제 : / usr / local / lib에 Python 3.4를 설치 한 Ubuntu 13.10에 'apt_pkg'라는 모듈이 없습니다.


29

우분투를 처음 접했고 우분투 13.10에서 업데이트 관리자를 실행하려고합니다. 나는 얻다:

jacopo@jacopo-laptop:~$ update-manager 
Traceback (most recent call last):
  File "/usr/bin/update-manager", line 28, in <module>
    from gi.repository import Gtk
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 27, in <module> from ._gi import _API
ImportError: No module named 'gi._gi'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 64, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 20, in <module>
import apt
File "/usr/lib/python3/dist-packages/apt/__init__.py", line 21, in <module>
import apt_pkg
ImportError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
File "/usr/bin/update-manager", line 28, in <module>
from gi.repository import Gtk
File "/usr/lib/python3/dist-packages/gi/__init__.py", line 27, in <module>
from ._gi import _API
ImportError: No module named 'gi._gi'

내가 아는 한, 이것은 python3.4를 설치해야한다는 사실과 관련된 문제입니다. 에 설치 /usr/local/lib했지만 항상 같은 오류가 발생합니다. 이런 식으로 Ubuntu 14.04로 업그레이드조차 할 수 없습니다.

답변:


32

다음을 apt_pkg사용하여 다시 설치하십시오 .

sudo apt-get install --reinstall python3-apt

오류는 주로 라이브러리가 없기 때문에 발생합니다 apt_pkg.cpython-35m-x86_64-linux-gnu.so./usr/lib/python3/dist-packages .

제거하고 다시 설치하면 도움이됩니다.


14
sudo apt install --reinstall <package-name>종속성을 계산 및 제거하지 않고 제거 할 패키지를 표시하지 않으므로을 사용하여 한 번에 패키지를 다시 설치하는 것이 거의 항상 바람직합니다 . 패키지를 제거하는 것이 항상 되돌릴 수있는 절차 는 아닙니다 . 예를 들어 APT는 요청이있을 경우 자체 또는 해당 종속성을 제거합니다! 따라서 --reinstall플래그는 remove뒤에 오는 것보다 훨씬 안전 합니다 install. remove자체 명령은 그렇게 아무런 혜택이없는 패키지의 구성 파일을 제거하지 않습니다 install --reinstall.
Zanna

4
이 답변은 @Zanna의 제안으로 업데이트되어야합니다 .python3 -apt를 제거하면 많은 의존성이 제거되고 시스템을 망치는 것은 말할 것도없고 누군가에게 쓰레기를 놀라게 할 수 있습니다.
alkanen

따라서 apt-package sudo dpkg -r --force-depends apt-package를 제거하고 apt-package 만 제거하고 종속 패키지는 제거하지 마십시오.
karel

12

나를 위해 다음 단계가 효과적이었습니다.

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

원래 솔루션은 다음과 같습니다. /programming/13708180/python-dev-installation-error-importerror-no-module-named-apt-pkg/36232975#36232975


1
"원래 솔루션"에 대한 의견에서 언급했듯이 이것은 나를 위해 일했습니다 sudo ln -s apt_pkg.cpython-{35m,36m}-x86_64-linux-gnu.so. 35(파이썬 3.5) 버전에 관계없이 실행중인 것을 파이썬 3.x를의 특정 하위 버전의 설치 대상이다. 감사!
fwc

6
update-alternatives  --set python3  /usr/bin/python3.6

3
파이썬의 대안을 업데이트하면 때로는 문제가 발생할 수 있습니다.
Kulfy

1
나는 그것을 사용 update-alternatives --set python3 /usr/bin/python3.5했다. python3은 이미 python3.6내 시스템을 가리 켰습니다 .
Desik

2

13.10을 14.04로 업그레이드하려는 경우 다음 지침을 따르십시오 . 명령 행에서 현재 시스템을 업데이트하려는 경우 터미널을 열고 다음을 입력하십시오.

sudo apt-get update
sudo apt-get dist-upgrade

감사. 이미 시도했지만 작동하지 않았습니다. apt-get 업데이트 후 경고 W : bzip2 : /var/lib/apt/lists/partial/it.archive.ubuntu.com_ubuntu_dists_saucy-updates_main_source_Sources 해시 합계 불일치
user291925

K-업데이트 소스에 문제가 있습니다. 다음 링크가 귀하의 질문에 잘 맞는 것 같습니다. askubuntu.com/questions/41605/…
Charles Green

감사! 시도했지만 여전히 실행할 때 동일한 오류가 발생합니다update-manager
user291925

K-더 광범위한 웹 검색없이 내 가능성을 소진합니다. 행운을 빕니다!
Charles Green

2

나는 복사하여이 문제를 해결하기 위해 관리가 apt_pkg.cpython-34m-i386-linux-gnu.so/usr/lib/python3/dist-packages/우분투 14.04 LTS를 실행하는 다른 바탕 화면에서. 파이썬 설치 제거 및 재설치, 손상된 업그레이드 파일 정리 등 인터넷에서 발견되는 거의 모든 가능성을 시도했지만 결국 성공하지 못했습니다.


1

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

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

올바른 파이썬 버전을 입력해야 할 수도 있습니다.

python3 -V

에 대한 하나의 버전을 제거 3.4했습니까?
IggyPass

이것을 시도하고 상황을 악화시키는 것으로 나타났습니다 . 추천 할 수 없습니다.
MERose

1

단지 조언 : / usr / local에 "my"python을 설치하지는 않지만 python 버전 당 하나의 전용 디렉토리 (예 : / opt)가 있으며 사용자 계정에서 가상 환경을 사용하여 필요한 python을 사용하고 있습니다. 내 .profile에 의해 활성화됩니다.

이 방법을 사용하면 항상 파이썬 시스템의 예상 구성 및 종속성을 변경하지 않아도됩니다.

글쎄, 당신의 경우에는 너무 늦었지만 ...


1

나를위한 문제는 python3.6 옆에 python3.7을 설치하고 기본값으로 설정했다는 것입니다.

다음 명령을 수동으로 실행합니다.

ln -s /usr/bin/python3.6  /usr/bin/python3

그래서 python3은 이제 올바른 버전의 python을 가리키고 ...이 문제를 해결합니다.


1
우분투 18에서 python3.7로 업데이트했기 때문에 문제에 직면하고 있습니다. 그러나 내가 한 일을 할 때 (심볼릭 링크 만들기) ln: failed to create symbolic link '/usr/bin/python3': File exists. 내가 할 경우 ls내에서 /usr/bin/python*, 내가 가지고있는 python3, python3.6, python3.6m, python3.7, python3.7mpython3m. 내가 할 경우 sudo update-alternatives --config python3, 내가 가진 *0 /usr/bin/python3.7 2 auto mode, 1 /usr/bin/python3.6 1 manual mode그리고 2 /usr/bin/python3.7 2 manual mode. 감사합니다.
user1330974

이미 존재하는 링크 파일을 삭제하거나 .old로 이름을 바꾸고 고유 한 링크를 만들어야 할 수도 있습니다.
M.Hefny

@ user1330974 마침내 문제를 해결 했습니까? 나는 같은 문제에 직면하고있다
달론시

1
@ 분명히 그냥 심볼릭 링크를 강제 user1330974 일했다 :ln -sf /usr/bin/python3.6 /usr/bin/python3
dallonsi

1
@dallonsi 감사합니다. 더 자세히 조사하지는 않았지만 귀하의 접근 방식을 사용할 것입니다. :)
user1330974
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.