web-dev-qa-db-ja.com

'ImportError:No module named _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)

だからそれはノーゴーです。

6
Gabriel

idle-python2.7パッケージを削除するだけでこの問題を解決する方法を見つけました。

Sudo apt-get remove idle-python2.7  

述べたように ここ

1
Gabriel

これを検索すると、いくつか試してみる必要があります。

  1. Pythonを再インストールする

    このリンクが見つかりました: 破損python(2.7)手動でビルドしてインストールした後python 2.6 。提案は、次のように再インストールすることでしたそう:

    $ Sudo apt-get --reinstall install python python-support
    
  2. ソフトウェアアップデートアプリでインターネットが有効になっていることを確認します

    このリンクが見つかりました: パッケージの依存関係の問題が増えます。フレッシュインストールの後には常に多くの問題が発生します

    face Palm更新マネージャー/設定のUbuntuソフトウェアタブに移動し、インターネットボタンからダウンロードできるすべてのソフトウェアを再度有効にしました。

3
slm

答えは簡単です。システムが正しく構成されていません。ベースPythonパッケージのローカルインストールを実行しました。これはノーノーです。ベースバイナリPythonパッケージをディストリビューションリポジトリからインストールしてください。特に、あなたのPythonインストールはlib/python2.7/site.py内のlib/python2.7/sysconfig.pyおよび/usr/localのようなファイルを探していますが、これらのファイルはベースの一部ですPythonパッケージpython2.7-minimal、または場合によってはlibpython2.7-minimal。ディストリビューションが対応するDebian/Ubuntuのバージョンによって異なります。

とにかく、解決策は簡単です。ローカルにインストールされたベースPythonパッケージを削除し、基本的なPythonパッケージをディストリビューションからインストールします。ソフトウェアがディストリビューションで利用できない場合、次にローカルにインストールします。パッケージを使用しない場合は、ディストリビューションを使用してもあまり意味がありません。

なに

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

いう?これらの2つすべきがシステムにインストールされている。

1
Faheem Mitha