ImportError:无法在Eclipse / PyDev中导入名称urandom

时间:2012-06-23 22:19:17

标签: python pydev

当我尝试在Eclipse(PyDev)中运行下面的脚本时:

import subprocess
subprocess.call("/usr/local/bin/mitmdump")

返回错误:

Traceback (most recent call last):
  File "/usr/local/bin/mitmdump", line 19, in <module>
    from libmproxy import proxy, dump, cmdline
  File "/Library/Python/2.7/site-packages/libmproxy/proxy.py", line 22, in <module>
    import shutil, tempfile, threading
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/tempfile.py", line 34, in <module>
    from random import Random as _Random
  File "/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

如果我从bash运行相同的脚本,它可以正常工作。是什么给了什么?

$ python
Python 2.7.3 (v2.7.3:70274d53c1dd, Apr  9 2012, 20:52:43) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> subprocess.call("/usr/local/bin/mitmdump")
127.0.0.1 GET http://google.com/

Ubuntu Python ImportError cannot import urandom Since Ubuntu 12.04 upgrade似乎存在相关问题,但我的环境是OSX。

3 个答案:

答案 0 :(得分:2)

要正确诊断,请执行以下操作:

编辑/ usr / local / bin / mitmdump,并制作:

try:
    from libmproxy import proxy, dump, cmdline
except ImportError:
    import sys
    print 'Executable:', sys.executable
    print '\n'.join(sorted(sys.path))
    raise

然后检查你所看到的内容实际上是你所期望的......(你可以在命令行中进行相同的打印,以便在没有引发异常时检查有什么区别,然后可能更新你的Eclipse / PyDev中的PYTHONPATH。

答案 1 :(得分:2)

我有相同的症状,但在Mac OS X的命令行中使用python。在这里找到答案:Python: cannot import urandom module (OS X)

不确定您遇到的问题是否相同,或者如何从Eclipse调用hash -r

答案 2 :(得分:0)

我想你的python路径是正确设置的。如果是这样,python无法找到模型,因此无法导入。