2012-09-30 20 views
9

Bunun gibi bir soruyu sormaktan utanıyorum, ama birkaç saattir deniyorum ... pythonumu alamıyorum gibi görünüyor Artık rasgele şeyler yapmak için. Daha doğrusu, urandom modülünü kaçırıyor.Python: urandom modülünü (OS X) alamıyor

Birincisi, burada sistem hakkında bazı bilgiler şunlardır:

  • OSX sürümü: 10.7.4
  • piton sürümü: Python 2.7.1
  • which python: /opt/local/bin/python
  • import os; os: <module 'os' from '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.pyc'>
  • : /opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin
  • $ENV ve $PYTHONPATH ben daha derin bir görünüm ve vim /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/random.py yaptığınızda, bu dosya görebilirsiniz

Şimdi boş urandom gerektirir:

Ben çalıştırmayı deneyin zaman, oldukça mantıklı, ben kusurumuz var
line 47: from os import urandom as _urandom 

:

>>> import random 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/random.py", line 47, in <module> 
    from os import urandom as _urandom 
ImportError: cannot import name urandom 

Herhangi bir fikir? Nerede yaşamak gerekiyordu? Şimdiye kadar başarı olmadan dolaşıyorum.
Birçok Ubuntu kullanıcısı sanalenv ile bu sorunu yaşıyormuş gibi görünüyor, ama ben virtualenv kullanmıyorum ve Ubuntu'da değilim. Benim bahsettiğim, bir şekilde benim PATH ya da PYTHONPATH ya da ENV değişkenlerim düzgün ayarlanmadı, ama bunu nasıl çözeceğimi bilmiyorum.

cevap

16

Tamam, anladım. Terminalimde kirli bir hash tablosu vardı.

Python 2.7.3 (default, Apr 19 2012, 00:55:09) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import random 
>>> import os; os 
<module 'os' from '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.pyc'> 

Not farklı piton sürümü (2.7.1 vs 2.7.3 öncesi):

Çözüm: Bu kez

hash -r # will erase the currently used hash table 

yapıldı, yine piton koştum ve aldım. Bunun sebebi, python 2.3'ün mac portu aracılığıyla daha önceki bir yüklemesinden kaynaklanmaktadır. soru/hızlı yanıt için

Maalesef:/

İyi geceler!
Arnaud

+0

Merhaba Amaud, bu çözümü nasıl buldunuz? – CaptainCasey

+2

Dürüstçe deneyebileceğim şeyler için çaresizdim (böyle saçma bir problemin hatalarını ayıklamak için 2+ saat). Sonra bu 'karma 'komutu akla geldi, denedim, işe yaradı. Korkarım ki buradaki hikayeyi takip eden harika bir hatam yok:/ –

+0

Bunu gönderdiğiniz için teşekkür ederiz! Bir yapı süreci sırasında meydana geldiğinde (her durumda bir Python adamı değilim), bu kadar takdirle karşılandım. :-) – Noldorin