2012-11-24 8 views
3

어떻게 든 내 파이썬은 고장 및 오류 방출된다파이썬 "ImportError를 : 이름 urandom을 가져올 수 없습니다"

[email protected]:/etc/default$ python -c 'import random' 
Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
    File "/usr/lib/python2.6/random.py", line 47, in <module> 
    from os import urandom as _urandom 
ImportError: cannot import name urandom 

이 너무 일반적으로 여기에 다른 곳에서 설명되어있는 VIRTUALENV 오류가 아닙니다 : 나는 파이썬을 사용하지 않는를 직접, 나는 결코 virtualenv를 명시 적으로 설정하지 않았으며, virtualenv 디렉토리 나 python 스크립트가 없으므로 시스템 어디에서나 찾을 수 있습니다.

저는 쿠분투 10.04를 실행 중입니다. 최근까지 내 KPackageKit이 문제없이 잘 작동하고 업데이트를 처리 할 때까지만했습니다. 이제는 아무 것도 보여주지 않을 것입니다. 아마이 파이썬 오류 때문일 수도 있습니다.

어떻게 오류를 찾고 파이썬을 수정합니까? @Armin 리고 의해 제안

+0

당신은 apt-get/aptituding으로 파이썬 업그레이드를 시도 했습니까? –

+1

/usr/lib/python2.6/os.py를 편집하여 시작하여 끝에 "print 42"를 추가하십시오. 원본 파일은 우연의 정의로 끝납니다. 42가 나타나는지 확인하십시오. 그렇지 않으면 다른 곳에서 다른 os.py를 가져오고 있습니다. random.py의 충돌 라인 바로 앞에 "import os; print os .__ file__"을 추가하여 확인하십시오. –

+0

고마워요 ... os.py 파일로 가서 제안한대로 print 문을 추가하고 '42'를 인쇄했습니다. 파일을 보면, 끝에는 urandom에 대한 정의가 없습니다 (!); 마지막 줄은 statvfs의 try 블록에서 'pass'였다. 그래서, 파이썬 2.7에서 os.py의 또 다른 복사본을 얻었고 urandom 정의를 복사했습니다. - 이제 모든 것이 작동합니다. 답장을 보내 주시면 분명히 투표하겠습니다. 건배. – JESii

답변

0

, 이것은 나를 위해 일한 :

1)이 /usr/lib/python2.6/os.py 파일의 끝에 print 42를 추가합니다.

2) "42"가 표시되면 올바른 os.py 파일이며 urandom 모듈은 포함되지 않습니다. urandom을 포함하는 명령문을 추가하십시오 (다른 os.py 파일의 샘플을 찾을 수 있음). 이것은 나를 위해 일한 것이 었습니다.

3) "42"가 표시되지 않으면 사용중인 os.py 파일이 아닙니다. 충돌에 대한 random.py 파일을 찾아서 import os; print os.__file__을 삽입하여 실패에 대한 자세한 정보를 얻으십시오.

관련 문제