gnomeの端末を使用してGajimを開こうとすると、次のメッセージが表示されます。
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.4からv2.6にアップグレードされました。
答え1
無効な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
and 、および存在の場合など、定義されていない場合は/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
また見なさい:これエラーレポート