接球_编译.PyCompileError,并转换为字符串

2024-10-06 07:05:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图编译一个python脚本并记录任何语法错误

我有个剧本叫测试.py看起来像

#!/usr/bin/python
import py_compile
try:
    py_compile.compile("answer.py")
except py_compile.PyCompileError as e:
  print(e)

你知道吗答案.py只是一个独立的脚本,除了打印一些东西(目前)什么都不做

我在运行的php文件中还有一个php exec命令测试.py,问题是php exec没有得到任何返回

print(e)

我猜是因为PyCompileError中的e不是字符串或格式奇怪的东西,所以结果只是返回空的“”。当我玩它的时候,它好像是一个物体,不知道如何把它转换成一个字符串。你知道吗

我试着把它放到一个字符串中,但是它不起作用,如果我把e变成一个类似print("You have errors")的字符串,我会得到正确的输出,所以它不是我的php,但是我希望在行中出现语法错误。甚至不知道我是否应该使用compile()来实现这个


Tags: 字符串pyimport脚本binusr记录exec
1条回答
网友
1楼 · 发布于 2024-10-06 07:05:38

我想出来了,基本上我需要doraise=True然后得到print(e.exc_value)

在人们认为我懒惰和不阅读文档之前,我最初确实有doraise=True,但我没有意识到exc\u value是包含消息的变量(我试图获取e.msg),所以我关闭了它,因为它说默认情况下,它会打印到stderr,而我尝试从那里开始工作。你知道吗

请忽略

相关问题 更多 >