2012-09-30 18 views
9

मैं काफी इस तरह का सवाल पूछने के लिए शर्मिंदा हूँ, लेकिन मैं पहले से ही कुछ घंटों के लिए कोशिश कर रहा है आयात नहीं कर सकते ... यह मैं अपने अजगर नहीं मिल सकता है लगता है अब यादृच्छिक चीजें करने के लिए संस्करण। अधिक सटीक, यह मॉड्यूल urandom गुम है।पायथन: urandom मॉड्यूल (ओएस एक्स)

सबसे पहले, यहाँ अपने सिस्टम के बारे में कुछ जानकारी कर रहे हैं:

  • OSX संस्करण: 10.7.4
  • अजगर संस्करण: अजगर 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'>
  • echo $PATH: /opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin
  • $ENV और $PYTHONPATH खाली हैं

अब, जब मैं एक गहरी नजर है और vim /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/random.py करते हैं, मैं इस फ़ाइल देख सकते हैं urandom की आवश्यकता है:

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 

कोई विचार? यादृच्छिक कहां रहने के लिए कहा जाता है? मैं अब तक सफलता के बिना चारों ओर घूम रहा हूं।
यह Ubuntu उपयोगकर्ताओं का एक बहुत virtualenv के साथ इस समस्या थी लगता है, लेकिन मैं virtualenv का उपयोग नहीं कर रहा हूँ, और मैं Ubuntu पर नहीं कर रहा हूँ। मेरी शर्त यह है कि किसी भी तरह से मेरे पाथ या पायथनपैथ या एनएनवी चर ठीक से सेट नहीं होते हैं, लेकिन मुझे नहीं पता कि इसे कैसे हल किया जाए।

उत्तर

16

ठीक है, मैं यह पता लगा। मेरे टर्मिनल में एक गंदे हैश टेबल थी।

समाधान:

hash -r # will erase the currently used hash table 

इस बार किया गया था, मैं अजगर फिर से भाग गया और मुझे मिल गया:

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'> 

नोट अलग अजगर संस्करण (2.7.3 2.7.1 बनाम से पहले)। मुझे लगता है कि यह मैक पोर्ट के माध्यम से अजगर 2.3 के पहले के स्थापित होने के कारण है।

प्रश्न/त्वरित जवाब के लिए खेद है:/

एक अच्छी रात है!
अरनॉड

+0

हाय Amaud, आप कैसे है कि समाधान मिला? – CaptainCasey

+2

ईमानदारी से मैं तरह बातें मैं कोशिश कर सकते के लिए की हताश (जैसे एक हास्यास्पद समस्या को दूर करने के लिए 2 + घंटे) था। तब यह 'हैश' आदेश दिमाग में आया, मैंने कोशिश की, यह काम किया। मुझे डर है कि मेरे पास यहां एक अद्भुत बग पीछा करने वाली कहानी नहीं है:/ –

+0

इसे पोस्ट करने के लिए धन्यवाद! जब मैं एक निर्माण प्रक्रिया के दौरान हुआ था तब मैं पूरी तरह से फंस गया था (मैं किसी भी मामले में पाइथन लड़का नहीं हूं), बहुत सराहना की। :-) – Noldorin