gpt4 book ai didi

python从字符串中导入代码

转载 作者:太空宇宙 更新时间:2023-11-04 08:17:00 27 4
gpt4 key购买 nike

我正在使用谷歌应用引擎,我试图基本上允许用户上传代码,稍后将由服务器执行。我还必须能够将变量发送到脚本,这就是为什么最初当我在桌面上运行所有内容时,我动态导入所有内容(如脚本名称存储在变量中)。但是现在由于 google app engine 环境中的文件系统,我不能这样做。

我已经有一个数据库设置,这样我就可以得到纯文本的代码。但现在我想知道是否有任何方法可以导入 python 脚本,不是从文件而是从包含 python 代码的变量。

例如,如果这是纯文本代码,我怎样才能让它正确执行:

code = """
def Main(var):
print "you entered: " + var
"""

最佳答案

首先,为代码创建一个模块:

# define module_name somewhere
import types
module = types.ModuleType(module_name)

您可能也想注册该模块:

import sys
sys.modules[module_name] = module

然后编译代码:

# source should the code to execute
# filename should be a pseudo-filename that the code's from
# (it doesn't actually have to exist; it's used for error messages)
code_object = compile(source, filename, 'exec')

然后在模块上下文中执行代码对象:

exec code_object in module.__dict__

关于python从字符串中导入代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12665987/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com