패키지 관리 시 "ImportError: _struct라는 모듈이 없습니다" 오류

패키지 관리 시 "ImportError: _struct라는 모듈이 없습니다" 오류

저는 Elementary OS 0.2(Ubuntu 12.04 기반)를 실행하고 있으며 오늘부터 패키지를 설치/업그레이드하려고 할 때 이상한 오류가 표시됩니다. 방금 예를 만들었습니다.

sudo apt-get update

훌륭하게 작동하면 다음과 같습니다.

sudo apt-get upgrade

다음을 반환해 보세요.

Setting up idle-python2.7 (2.7.3-0ubuntu3.5) ...
Traceback (most recent call last):
  File "/usr/lib/python2.7/compileall.py", line 16, in <module>
    import struct
  File "/usr/lib/python2.7/struct.py", line 1, in <module>
    from _struct import *
ImportError: No module named _struct
dpkg: error processing idle-python2.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 idle-python2.7
E: Sub-process /usr/bin/dpkg returned an error code (1)

무슨 일이야? 분명히 이것은 패키지와 관련이 있지만 python여전히 python문제 없이 스크립트를 실행할 수 있습니다. 이 문제를 어떻게 해결할 수 있나요?


다음에 추가

내가 시도한 답변에 제공된 조언에 따라:

sudo apt-get --reinstall install python python-support

이는 다음을 반환합니다:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 2 reinstalled, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/192 kB of archives.
After this operation, 0 B of additional disk space will be used.
(Reading database ... 864980 files and directories currently installed.)
Preparing to replace python 2.7.3-0ubuntu2.2 (using .../python_2.7.3-0ubuntu2.2_i386.deb) ...
Unpacking replacement python ...
Preparing to replace python-support 1.0.14ubuntu2 (using .../python-support_1.0.14ubuntu2_all.deb) ...
Unpacking replacement python-support ...
Processing triggers for man-db ...
Processing triggers for doc-base ...
Processing 1 changed doc-base file...
Registering documents with scrollkeeper...
Setting up idle-python2.7 (2.7.3-0ubuntu3.5) ...
Traceback (most recent call last):
  File "/usr/lib/python2.7/compileall.py", line 16, in <module>
    import struct
  File "/usr/lib/python2.7/struct.py", line 1, in <module>
    from _struct import *
ImportError: No module named _struct
dpkg: error processing idle-python2.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
Setting up python (2.7.3-0ubuntu2.2) ...
Setting up python-support (1.0.14ubuntu2) ...
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site.py", line 548, in <module>
    main()
  File "/usr/local/lib/python2.7/site.py", line 530, in main
    known_paths = addusersitepackages(known_paths)
  File "/usr/local/lib/python2.7/site.py", line 266, in addusersitepackages
    user_site = getusersitepackages()
  File "/usr/local/lib/python2.7/site.py", line 241, in getusersitepackages
    user_base = getuserbase() # this will also set USER_BASE
  File "/usr/local/lib/python2.7/site.py", line 231, in getuserbase
    USER_BASE = get_config_var('userbase')
  File "/usr/local/lib/python2.7/sysconfig.py", line 516, in get_config_var
    return get_config_vars().get(name)
  File "/usr/local/lib/python2.7/sysconfig.py", line 449, in get_config_vars
    import re
  File "/usr/local/lib/python2.7/re.py", line 105, in <module>
    import sre_compile
  File "/usr/local/lib/python2.7/sre_compile.py", line 14, in <module>
    import sre_parse
  File "/usr/local/lib/python2.7/sre_parse.py", line 17, in <module>
    from sre_constants import *
  File "/usr/local/lib/python2.7/sre_constants.py", line 18, in <module>
    from _sre import MAXREPEAT
ImportError: cannot import name MAXREPEAT
Errors were encountered while processing:
 idle-python2.7
E: Sub-process /usr/bin/dpkg returned an error code (1)

그래서 이것은 작동하지 않습니다.

답변1

이것을 검색하면 시도해 볼 만한 몇 가지 항목이 나타납니다.

  1. 파이썬 재설치

    이 링크를 찾았습니다:Python 2.6을 수동으로 빌드하고 설치한 후 Python(2.7)이 손상되었습니다.. 다음과 같이 다시 설치하는 것이 좋습니다.

    $ sudo apt-get --reinstall install python python-support
    
  2. 소프트웨어 업데이트 응용 프로그램이 인터넷을 사용할 수 있는지 확인하십시오

    이 링크를 찾았습니다:더 많은 패키지 종속성 문제, 새로 설치한 후에는 항상 많은 문제가 발생합니다..

    얼굴 손바닥업데이트 관리자/설정 Ubuntu 소프트웨어 탭으로 이동하여 인터넷 버튼에서 다운로드할 수 있는 모든 항목을 다시 활성화했습니다.

답변2

이 문제를 해결하는 방법을 찾았습니다 idle-python2.7. 패키지를 제거하면 됩니다.

sudo apt-get remove idle-python2.7  

명시된 바와 같이여기.

답변3

대답은 간단합니다. 시스템이 잘못 구성되었습니다. 기본 Python 패키지를 로컬로 설치했습니다. 이것은 금기입니다. 배포 저장소에서 기본 바이너리 Python 패키지를 설치해야 합니다. 특히 Python 설치는 lib/python2.7/site.pylib/python2.7/sysconfig.py에서 파일을 찾고 있지만 이러한 파일은 배포판에 해당하는 Debian/Ubuntu 버전에 따라 /usr/local기본 Python 패키지 의 일부 python2.7-minimal이거나 일 수 있습니다 .libpython2.7-minimal

어쨌든 해결책은 간단합니다. 로컬에 설치된 기본 Python 패키지를 제거한 다음 배포에서 기본 Python 패키지를 설치합니다. 귀하의 배포판에서 해당 소프트웨어를 사용할 수 없는 경우,그 다음에로컬로 설치하세요. 패키지를 사용하지 않으면 배포판을 사용하는 데 실제로 별 의미가 없습니다.

무엇인가요

apt-cache policy python2.7-minimal libpython2.7-minimal python2.7

설명하다? 그들 중 두~해야 한다귀하의 시스템에 설치되었습니다.

관련 정보