Python 函数挂起在exec中
我在Python2.7和3.4的exec()函数中运行ndarray.dot(类似数组的对象)时遇到了一个问题—Python挂起,我需要关闭它。基于或是一个已知的问题。使用多处理库时,python由于死锁而挂起 下面的代码如何使用exec()执行?exec()是否创建新线程?有什么解决办法吗 实际代码更复杂,因此我需要使用exec() 测试点py: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
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()
导入一些东西该怎么办)?