0
掛起我要運行ndarray.dot(陣列狀物體)要麼在Python 2.7和在EXEC()函數 3.4的問題 - 蟒掛起並且我需要關閉它。基於Numpy "dot" hangs或multiprocessing with numpy quits Python這是一個已知的問題。當使用多處理庫時,由於死鎖,python掛起。ndarray.dot()函數在EXEC
以下代碼的行爲如何使用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)
謝謝。
太棒了,你是對的。由於我創建了一個「IDE」/「沙箱」來運行各種python代碼,因此我不能讓用戶使用builtins中的每個函數或類。我想只允許像min,max,tuple,dict,range,iter,isinstance,enumerate,iter這樣的函數。但不想允許__import__。 – regiea
那麼,我不知道是否一切都會工作,如果你調用的代碼將需要在後臺導入一些導入來運行(我的意思是如果例如'np.dot()'導入的東西)? –