Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 函数挂起在exec中_Python_Python 2.7_Python 3.x_Numpy - Fatal编程技术网

Python 函数挂起在exec中

Python 函数挂起在exec中,python,python-2.7,python-3.x,numpy,Python,Python 2.7,Python 3.x,Numpy,我在Python2.7和3.4的exec()函数中运行ndarray.dot(类似数组的对象)时遇到了一个问题—Python挂起,我需要关闭它。基于或是一个已知的问题。使用多处理库时,python由于死锁而挂起 下面的代码如何使用exec()执行?exec()是否创建新线程?有什么解决办法吗 实际代码更复杂,因此我需要使用exec() 测试点py: test_global_env = { '__builtins__': None, 'np': numpy } test_local

我在Python2.7和3.4的exec()函数中运行ndarray.dot(类似数组的对象)时遇到了一个问题—Python挂起,我需要关闭它。基于或是一个已知的问题。使用多处理库时,python由于死锁而挂起

下面的代码如何使用exec()执行?exec()是否创建新线程?有什么解决办法吗

实际代码更复杂,因此我需要使用exec()

测试点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)

谢谢。

这可能是第
行“内置”的问题:无,
。如果您注释掉这一行,您的代码将正常工作。顺便问一下,这条线的目的是什么


exec
不创建另一个线程,它在当前线程和任何其他函数中执行。其余的代码只是等待
exec
完成,然后继续执行。

太好了,你说得对。因为我正在创建一个“IDE”/“sandbox”来运行各种各样的python代码,所以我不能允许用户使用内置的每个函数或类。我只想允许像min,max,tuple,dict,range,iter,isinstance,enumerate,iter这样的函数。但是我不想允许导入。嗯,我不确定是否一切都能正常工作,如果您调用的代码需要在后台进行导入才能运行该怎么办(我的意思是如果例如
np.dot()
导入一些东西该怎么办)?