1

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に関連する問題があるようですUbuntu 12.04 アップグレード以降、urandom をインポートできませんが、私の環境は OSX です。

4

3 に答える 3

2

同じ症状がありましたが、Mac OS Xのコマンドラインで適切なPythonを使用しました。ここで答えが見つかりました:Python:urandomモジュール(OS X)をインポートできません

それがあなたが抱えているのと同じ問題なのか、それともhash -rEclipseから呼び出す方法なのかわからない。

于 2012-10-29T06:25:07.217 に答える
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内でPYTHONPATHを更新します/PyDev)。

于 2012-06-25T10:57:59.423 に答える
0

あなたのpythonパスはネットで適切に設定されていると思います。その場合、python はモデルを見つけることができないため、インポートできません。

于 2012-06-24T04:08:29.467 に答える