bs7*_*280 1 python google-app-engine
我正在使用谷歌应用程序引擎,我试图基本上允许用户上传代码,以后它将由服务器执行.我还必须能够将变量发送到脚本,这就是为什么在我运行桌面上的所有内容时,我动态导入所有内容(因为脚本的名称存储在变量中).但是由于谷歌应用引擎环境中的文件系统,我现在无法做到这一点.
我已经有了数据库设置,因此我可以用纯文本格式获取代码.但现在我想知道是否有任何方法可以导入python脚本,而不是从文件但是从包含python代码的变量.
例如,如果这是纯文本代码,我怎么能让它正确执行:
code = """
def Main(var):
print "you entered: " + var
"""
Run Code Online (Sandbox Code Playgroud)
首先,为代码创建一个模块:
# define module_name somewhere
import types
module = types.ModuleType(module_name)
Run Code Online (Sandbox Code Playgroud)
您可能也想要注册该模块:
import sys
sys.modules[module_name] = module
Run Code Online (Sandbox Code Playgroud)
然后编译代码:
# 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')
Run Code Online (Sandbox Code Playgroud)
然后在模块的上下文中执行代码对象:
exec code_object in module.__dict__
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
97 次 |
| 最近记录: |