web-dev-qa-db-ja.com

Gajimを開くことができません

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

これを修正する方法はありますか?

私のOSはMandriva2010.1です、Pythonはv2.4からv2.6にアップグレードされています

2
Nx212

おそらく間違った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

参照: this バグレポート

1
Anthon