Intereting Posts
дата – годы до 1901 года считаются недействительными Как сделать отрицательные правила в Apache? переход на systemd сценарий запуска-выключения, который работает с tmpfs и bindmounts Что называется этим файлом – в моем домашнем каталоге? Содержимое выходного файла при их изменении Создайте .tar.gz из каталога, опуская некоторые подкаталоги и добавляя только новые или измененные файлы ssh-copy-id другой порт Как создать загрузочную SD-карту для Banana Pi вручную Можно ли настроить конфигурацию git через несколько репозиториев? Сохранение строк повторяется определенное количество раз Каковы преимущества структуры файловой системы Unix? Как работают proc / diskstats для представления этих значений? А для proc / stat и meminfo? Временные перенаправленные порты Как я могу отладить проблему с моим сетевым подключением? Проверка Debian, оговорки с функцией замораживания?

Не удается открыть Gajim

Когда я пытаюсь открыть Gajim с помощью терминала на gnome, я получаю следующее:

Traceback (most recent call last): File "gajim.py", line 106, in <module> import common.configpaths File "/usr/share/gajim/src/common/configpaths.py", line 27, in <module> import tempfile File "/usr/lib64/python2.6/tempfile.py", line 34, in <module> from random import Random as _Random File "/usr/lib64/python2.6/random.py", line 47, in <module> from os import urandom as _urandom ImportError: cannot import name urandom 

Любая идея, как это исправить?

Моя ОС – Mandriva 2010.1, Python v2.6 обновлен с версии 2.4

Вероятно, вы импортируете неправильный модуль os.py. Попробуйте запустить python2.6, а затем

 >>> import os >>> print os.__file__ 

Это должно быть /usr/lib64/python2.6/os.py или /usr/lib64/python2.6/os.pyc . Если он не удаляет (или переименовывает) файл, который вы нашли. Если это попытка:

 >>> os.urandom(3) 

Это должно дать вам строку из 3 символов. Если это так, то gajim находит неправильный модуль os.py Если вы получите ту же ошибку, что и при запуске gajim то посмотрите в /usr/lib64/python2.6/os.py в конце urandom должен быть определен, если он не существует (используя строку if not _exists("urandom": ).

Если он не определен, как это имеет место для python-2.6.5-2.5mdv2010.2.x86_64 , и /dev/urandom существует, вы можете попытаться повторно добавить код:

 if not _exists("urandom"): def urandom(n): """urandom(n) -> str Return a string of n random bytes suitable for cryptographic use. """ try: _urandomfd = open("/dev/urandom", O_RDONLY) except (OSError, IOError): raise NotImplementedError("/dev/urandom (or equivalent) not found") try: bs = b"" while n - len(bs) >= 1: bs += read(_urandomfd, n - len(bs)) finally: close(_urandomfd) return bs 

См. Также: этот отчет об ошибке