под управлением Ubuntu 12.04 у меня был установлен обычный python 2.7.
Мне нужен был python 2.6, поэтому я скачал исходный код и сделал
./configure
make
sudo make install
ошибку, поскольку я этого не сделал хочу заменить мой общесистемный питон. Теперь некоторые программы перестали работать, например менеджер обновлений с
ImportError: No module named gi.repository
Я использовал альтернативы обновления, чтобы снова установить Python 2.7 по умолчанию, но многие приложения Python по-прежнему не запускаются из-за некоторых отсутствующих модулей.
Может кто-нибудь дать намек на то, что случилось, и какой лучший способ это исправить?
Заранее спасибо.
Редактировать:
Я мог бы получить некоторые функциональные возможности apt-get to work, установив собственную жесткую ссылку из / etc / python в /etc/python2.7. (Так что я думаю, что использование альтернатив обновлений действительно не принесло пользы.) Я сделал 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
PS: Сборка 2.7 из источника всегда выходила (также перед dist-ugprade или update-альтернативами) с
make: *** [libinstall] Error 1
В настоящее время у make есть и другие проблемы («Сборка Python завершена, но необходимые биты для сборки этих модулей не найдены: _bsddb bsddb185»). bz2
dl imageop sunaudiodev
Чтобы найти необходимые биты, посмотрите в файле setup.py в detect_modules () имя модуля. ")
Так как это немного закончилось моя голова, я думаю, мне просто лучше с новой установки с нуля.
Ваша установка на python 2.6, вероятно, изменила множество настроек и путей.
Лучше всего переустановить интерпретатор Python по умолчанию.
sudo apt-get --reinstall install python python-support
Я не могу его протестировать, но надеюсь, что он работает. Удачи.
Если это не работает, единственная другая идея, которая у меня есть, это установить Python 2.7 из исходного кода, а затем снова попытаться переустановить стандартный по умолчанию.
У меня была подобная проблема, когда я недавно понизил от 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 на его имя, и это решило проблему.
Я столкнулся по существу с той же проблемой, но для Python-минимальной 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
В моем случае это был пользовательский пакет Python (созданный с использованием dh-virtualenv), который находился в / usr / share / python. Мне пришлось запустить dpkg -P penemue
и в конечном итоге удалить каталог /usr/share/python/penemue
. Я мог бы просто убрать каталог /usr/share/python/penemue
.
Как только я избавился от плохого кода, запуск sudo apt-get install -f
решил проблемы.
Я предполагаю, что вы случайно переписали директорию Python по умолчанию (каким-то образом), а 2.6 несовместима с тем, что нужно менеджеру обновлений / приложениям.
Попробуйте sudo apt-get purge python2
, затем sudo apt-get install python2
. Это должно удалить Python из вашей системы и переустановить его, сделав его снова Python по умолчанию.
Лишь другая идея состоит в том, что у вас плохой исходный код для 2.6, и он как таковой сделал плохую установку, которая была не плохой , достаточной для обнаружения make ???