我想了解the docs。
我的Python脚本生成的Python代码运行得更晚,因此我想立即检查我生成的内容是否有效。
文档说py_compile.compile(file[, cfile[, dfile[, doraise]]])
和
如果doraise为true,则在编译文件时遇到错误时会引发PyCompileError
所以,我试过
source = open(generatedScriptPath, 'rt').read() + '\n'
try:
import py_compile
x = py_compile.compile(source, '', '', True)
except py_compile.PyCompileError, e:
print str(e)
但内部异常从未被命中,而是捕获了外部异常:
Traceback (most recent call last): File
"H:/code/testgen/testGen.py", line 293, in <module>
x = py_compile.compile(source, '', '', True) File "C:\Python27\lib\py_compile.py", line 106, in compile
with open(file, 'U') as f: IOError: [Errno 2] No such file or directory: '# This script was auto-generated ...
我该如何解决这个问题?请注意,我对替代方案持开放态度,我只想问最简单的方法。 “代码我刚刚生成语法上有效的Python吗?”
答案 0 :(得分:1)
阅读错误消息:“没有这样的文件或目录”。第一个参数应该是要打开的文件名。或者阅读文档:“源代码是从文件名/文件/加载的。”您可能更喜欢“compile”内置,它可以编译一串Python。