在Python脚本中使用py_compile.compile()

时间:2016-03-04 11:36:15

标签: python python-2.7

我想了解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吗?”

1 个答案:

答案 0 :(得分:1)

阅读错误消息:“没有这样的文件或目录”。第一个参数应该是要打开的文件名。或者阅读文档:“源代码是从文件名/文件/加载的。”您可能更喜欢“compile”内置,它可以编译一串Python。