Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在raspberry pi上记录python错误_Python_Linux_Pyqt_Raspberry Pi - Fatal编程技术网

在raspberry pi上记录python错误

在raspberry pi上记录python错误,python,linux,pyqt,raspberry-pi,Python,Linux,Pyqt,Raspberry Pi,我为一个嵌入式raspberry pi项目编写了一个python应用程序,我正在调试它,因为它使用TFT屏幕而不是全屏幕,并且没有显示器/键盘,所以我不得不通过TFT桌面上的图标(非常小)启动python应用程序。我无法通过SSH启动应用程序,因为它需要X(由于PyQT4),所以要在RPi上运行它,必须使用设备本身上的桌面图标启动它 桌面图标启动一个shell脚本,该脚本使用以下内容: sudo python appname.py >> logfile.log 2>&1

我为一个嵌入式raspberry pi项目编写了一个python应用程序,我正在调试它,因为它使用TFT屏幕而不是全屏幕,并且没有显示器/键盘,所以我不得不通过TFT桌面上的图标(非常小)启动python应用程序。我无法通过SSH启动应用程序,因为它需要X(由于PyQT4),所以要在RPi上运行它,必须使用设备本身上的桌面图标启动它

桌面图标启动一个shell脚本,该脚本使用以下内容:

sudo python appname.py >> logfile.log 2>&1
sudo python appname.py>>logfile.log

但它不会写它遇到的任何错误,它只记录我在任何错误之前所做的任何事情

如果我从RPi中取出SD卡并将其放入连接到完整鼠标/键盘/显示器的第二个RPi中,我可以运行python应用程序并查看终端中的错误,但这不能帮助我了解完全组装好的设备上发生了什么

如何记录通常在终端中看到的错误?


编辑:当然,我在应用程序中执行错误捕获,但我在python应用程序中发送shell命令,这可能是python中的try/catch无法捕获的问题。我希望在启动python脚本时捕获终端中的所有输出,而不管它的源代码是什么。

目前,您只是捕获标准输出。将您的调用修改为以下内容:

sudo python appname.py >> logfile.log 2>&1

这将重定向stdout和stderr。

目前,您只是在捕获stdout。将您的调用修改为以下内容:

sudo python appname.py >> logfile.log 2>&1

这将重定向stdout和stderr。

您还可以将stderr捕获到单独的文件:

sudo python appname.py >> logfile.log 2>> error.log

您还可以将stderr捕获到单独的文件中:

sudo python appname.py >> logfile.log 2>> error.log

对于唯一的错误,您可以使用:

sudo python appname.py 2>> logfile.log
仅适用于标准输出:

sudo python appname.py >> logfile.log
#same as sudo python appname.py 1>> logfile.log
对于
stdout
stderr

sudo python appname.py >> logfile.log 2>&1

对于唯一的错误,您可以使用:

sudo python appname.py 2>> logfile.log
仅适用于标准输出:

sudo python appname.py >> logfile.log
#same as sudo python appname.py 1>> logfile.log
对于
stdout
stderr

sudo python appname.py >> logfile.log 2>&1

当我添加
2>&1
时,该应用程序根本不会启动,也不会写入任何内容。结果表明,这是因为我在用于启动的图标中设置了
Terminal=false
。将其设置为true使一切正常当我添加
2>&1
时,应用程序根本不会启动,也不会写入任何内容。结果表明,这是因为我在用于启动的图标中设置了
Terminal=false
。将其设置为true可以使一切正常