gpt4 book ai didi

python - 如何加载用户代码?

转载 作者:太空宇宙 更新时间:2023-11-04 06:16:41 25 4
gpt4 key购买 nike

我有一个程序可以根据用户提供的 JSON 代码自动生成数据结构。我还想提供一个选项,允许用户编写自己的函数以编程方式生成此数据结构。有没有办法让 Python 通过路径加载任意模块并返回该模块的命名空间,以便我可以从我的程序中调用用户的函数?

例如,我想要如下内容:

def make(custom):
if not custom:
return helper('example.json')
else:
return load('path/to/user-script.py').make() # this line here

最佳答案

您可以使用 imp.load_source 导入命名的 .py 文件,就好像它是一个模块一样;见this question .

这通常是一件非常奇怪的事情,但加载不在 Python 模块层次结构中的用户 Hook 似乎是一个不错的借口。 :)


This Python bug声称 load_source 在 Python 3 中已过时,并建议使用更麻烦且不太明显的调用:

importlib.SourceFileLoader(name, path).load_module(name)

关于python - 如何加载用户代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15128670/

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