
Ubuntu 12.04 を実行していて、いつもの Python 2.7 がインストールされていました。
私はPython 2.6が必要だったので、ソースをダウンロードして
./configure
make
sudo make install
システム全体のpythonを置き換えたくなかったので、これは間違いでした。今では、いくつかのプログラムが動作しなくなりました。例えば、update-managerは
ImportError: No module named gi.repository
update-alternatives を使用して Python 2.7 を再びデフォルトにしましたが、一部のモジュールが不足しているため、多くの Python アプリケーションがまだ起動しません。
何が起こったのか、そしてそれを修正する最善の方法は何なのか、誰かヒントをくれませんか?
前もって感謝します。
編集 :
/etc/python から /etc/python2.7 へのハードリンクを設定することで、apt-get の一部の機能を動作させることができました。(つまり、update-alternatives の使用もあまり効果がなかったようです。) dist-upgrade を実行しましたが、基本的には動作しましたが、apt-get 経由のパッケージ管理の多くはまだ壊れています。特に、python-minimal の問題私が実行したい他の多くのパッケージのインストールを妨げます。
Setting up python-minimal (2.7.3-0ubuntu7) ...
Traceback (most recent call last):
File "/usr/local/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/local/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/usr/local/lib/python2.7/compileall.py", line 16, in <module>
import struct
File "/usr/local/lib/python2.7/struct.py", line 1, in <module>
from _struct import *
ImportError: No module named _struct
dpkg: error processing python-minimal (--configure):
subprocess installed post-installation script returned error exit status 255
追伸: ソースから 2.7 をビルドする常に終了していました(dist-ugpradeやupdate-alternativesの前も)
make: *** [libinstall] Error 1
現在、 make では、さらに問題があります (" Python ビルドは終了しましたが、これらのモジュールをビルドするために必要なビットが見つかりませんでした: _bsddb bsddb185 bz2
dl imageop sunaudiodev
必要なビットを見つけるには、setup.py の detect_modules() でモジュール名を探します。 ")
これはちょっと私には難しすぎるので、最初から新規インストールしたほうが良いと思います。
答え1
最近、debian/Testing から debian/Stable にダウングレードしたときに、同様の問題が発生しました。おそらく、プロセスのどこかで、python モジュールが破損したのでしょう。指摘されているように、python を消去して再インストールするのは、少々過酷でした。ありがたいことに、次のことに気付きました。 http://ubuntuforums.org/showthread.php?t=735693
この提案に従って、私はコマンドを試しました
for pkg in `dpkg --get-selections | egrep -v 'deinstall' | egrep python | awk '{print $1}'`; do apt-get -y --force-yes install --reinstall $pkg ; done
名前に python が含まれるものをすべて再インストールすると、問題は解決しました。
答え2
Python 2.6 のインストールにより、多くの設定とパスが変更されている可能性があります。
最善策は、デフォルトのPythonインタープリターを再インストールすることです。
sudo apt-get --reinstall install python python-support
テストはできませんが、うまくいくことを願っています。幸運を祈ります。
それが機能しない場合は、ソースから Python 2.7 をインストールし、その後、デフォルトのものを再インストールしてみるという唯一のアイデアがあります。
答え3
基本的に同じ問題に遭遇しましたが、python-minimal 2.7.11-1 の場合でした。
cat /var/lib/dpkg/info/python-minimal.postinst
次のような結果になるはずです:
#! /bin/sh
set -e
python2.7 -m compileall /usr/share/python/ >/dev/null
>/dev/null にリダイレクトせずにコマンドを実行します (ファイルを編集するか、sudo python2.7 -m compileall /usr/share/python/
)。これにより、インストール後の構成が失敗している場所が表示されます。
元:
Listing /usr/share/python/penemue/lib/python2.7/site-packages/gevent
Compiling /usr/share/python/penemue/lib/python2.7/site-packages/gevent/_socket3.py ...
File "/usr/share/python/penemue/lib/python2.7/site-packages/gevent/_socket3.py", line 183
def makefile(self, mode="r", buffering=None, *,
^
SyntaxError: invalid syntax
私の場合、それは /usr/share/python の下にあるカスタム Python パッケージ (dh-virtualenv を使用して構築) でした。 を実行してdpkg -P penemue
、最終的にディレクトリを削除する必要がありました。ディレクトリを邪魔にならない場所に/usr/share/python/penemue
移動するだけで済んだかもしれません。/usr/share/python/penemue
不良コードを削除したら、実行するとsudo apt-get install -f
問題が解決しました。
答え4
私の推測では、デフォルトの Python ディレクトリが誤って上書きされ (何らかの理由で)、2.6 は更新マネージャー/アプリに必要なものと互換性がありません。
試してくださいsudo apt-get purge python2
。sudo apt-get install python2
これにより、システムから Python が削除され、再インストールされて、再びデフォルトの Python になります。
他に考えられるのは、2.6のソースコードが悪かったために、インストールが悪かったということだ。十分make によって検出される???