でハング - Pythonのハングを、私は閉じる必要がありますそれ。 Numpy "dot" hangsまたはmultiprocessing with numpy quits Pythonに基づいて、これは既知の問題です。マルチプロセッシングライブラリを使用すると、デッドロックのためにPythonがハングします。ndarray.dotは()関数は、私は、Python 2.7で3.4 <em>のexec()</em>機能のいずれか<em>ndarray.dot(配列のようなオブジェクト)</em>を実行するための問題持っている幹部
を使用して以下のコードを実行する方法exec()? exec()新しいスレッドを作成しますか?それを解決する解決策はありますか?
実際のコードはより複雑なので、exec()を使用する必要があります。
test_dot.py:
test_global_env = {
'__builtins__': None,
'np': numpy
}
test_local_env = {}
test = '''
result = np.array([[1, 2], [3, 4]]).dot([0.14, 0.1])
'''
if __name__ == '__main__':
exec(test, test_global_env, test_local_env)
ありがとうございました。
大丈夫です。私はさまざまなPythonコードを実行するための "IDE"/"sandbox"を作成しているので、ユーザが組み込み関数のすべての関数やクラスを使用できるようにすることはできません。 min、max、tuple、dict、range、iter、isinstance、enumerate、iterのような関数だけを許可したい。しかし、__import__を許可したくありません。 – regiea
まあ、すべてがうまくいくかどうか分からないのですが、実行するためにあなたが呼び出すコードがバックグラウンドで何らかのインポートを必要とするとしたらどうでしょう?(例えば 'np.dot()'が何かをインポートするとどういう意味ですか? –