нет модуля с именем rpm - когда я вызываю yum в оболочке

Я установил python 2.7.5 и mod_wsgi на ОС Centos Linux. И это произошло:

# yum
Error processing line 1 of /usr/local/lib/python2.7/site-packages/abrt.pth:

  Traceback (most recent call last):
    File "/usr/local/lib/python2.7/site.py", line 152, in addpackage
      exec line
    File "<string>", line 1, in <module>
  ImportError: No module named abrt_exception_handler

Remainder of file ignored
Traceback (most recent call last):
  File "/usr/bin/yum", line 22, in <module>
    import yummain
  File "/usr/share/yum/yummain.py", line 22, in <module>
    import clientStuff
  File "/usr/share/yum/clientStuff.py", line 18, in <module>
    import rpm
ImportError: No module named rpm

Модуль yum не запускается, потому что модуль rpm не существует. Я не знаю, как мне установить модуль python-rpm и будет ли он работать, если я его установлю?

Спасибо.


person u.unver34    schedule 05.07.2013    source источник
comment
/usr/local/lib звучит неправильно. Вы случайно не заменили python вашей системы? Обычно это плохая идея.   -  person mata    schedule 05.07.2013
comment
На самом деле, да, я изменил активную версию Python. Python 2.6 был установлен до и после установки 2.7.5 в /usr/local/lib. И я хочу использовать эту версию с mod_wsgi, поэтому я изменил жесткую ссылку /usr/bin/python › /usr/local/bin/python или что-то в этом роде.   -  person u.unver34    schedule 05.07.2013
comment
Кроме того, я скопировал некоторые каталоги модулей из /usr/lib/python2.6/lib/site-packages в /usr/local/lib/python2.7/site-packages. Теперь я хочу перестроить всю систему Python на Linux. Как я могу удалить и переустановить python как python 2.7?   -  person u.unver34    schedule 05.07.2013
comment
Вы решили эту проблему? У меня есть такой же..   -  person harunyardimci    schedule 24.10.2013
comment
Мы сменили серверную машину.   -  person u.unver34    schedule 09.12.2013


Ответы (2)


Вы не должны касаться установки Python в вашей системе. Обновление версии python системы должно быть оставлено на усмотрение дистрибутива.

Если вам нужна более новая версия, установите ее, но держите отдельно от системной версии.

Вам следует восстановить исходный /usr/bin/python - обычно это символическая ссылка (в данном случае на /usr/bin/python2.6.

Вероятно, вы захотите удалить и переустановить python2.7, так как копирование модулей (особенно если они содержат бинарные расширения) из одной версии в другую может привести к проблемам. Установите нужные вам пакеты напрямую, используя новую версию Python:

python2.7 setup.py ...

Если вы хотите, чтобы mod_wsgi использовал более новую версию, используйте директиву WSGIPythonHome для укажите правильный префикс (/usr/local).

person mata    schedule 05.07.2013

У меня была аналогичная проблема, я вручную загрузил старую версию python и переустановил ее с помощью rpm:

$ rpm -qa | grep python- | grep 2.6
$ sudo rpm -ivh --force ftp://mirror.switch.ch/pool/4/mirror/scientificlinux/6.5/x86_64/updates/fastbugs/python-2.6.6-52.el6.x86_64.rpm

После переустановки python мой yum работает корректно.

person Shumin Guo    schedule 18.08.2014