【发布时间】:2018-06-13 12:10:19
【问题描述】:
import tempfile
tmp = tempfile.NamedTemporaryFile(delete=True)
try:
# do stuff with temp
tmp.write(b'def fun():\n\tprint("hello world!")\n')
if __name__ == '__main__':
func = __import__(tmp.name)
func.fun()
finally:
tmp.close() # deletes the file
所以我想创建一个临时文件,添加一些源代码,然后导入模块并调用函数,但我总是遇到这个错误:
ModuleNotFoundError: No module named '/var/folders/3w/yyp887lx4018h9s5sr0bwhkw0000gn/T/tmp84bk0bic'
似乎没有找到临时文件的模块。我该如何解决?
【问题讨论】:
-
临时模块文件可能不在
PYTHON_PATH中提到的任何目录中。将临时模块文件放在主脚本文件旁边并从那里导入怎么样?这应该是可能的。 -
@Alfe 不知道该怎么做,去文档看看我该怎么做
-
为什么要把这些东西写到文件里而不是
eval("your code here")?