【发布时间】:2022-08-24 02:42:57
【问题描述】:
操作系统:Ubuntu
设备:Jetson Nano 开发者套件 2GB
我有一个 python 程序,我想通过双击来启动它。这样做的原因是因为我想只用一个触摸屏来控制整个设备。我编写了一个.sh 文件来启动python 程序,但是当我双击它时,终端会打开并立即关闭,当我通过终端手动运行.sh 文件时也会发生同样的事情。
.sh 文件:
#!/usr/bin/env bash
echo \"Starting\"
sleep 1
cd /home/velotech/workspace
python3 detect.py
奇怪的是,当我从终端手动运行命令python3 detect.py 时,程序运行得很好。
我尝试过的事情:
- 制作了一个简单的
hello.py程序,这个程序通过双击.sh文件和终端都可以工作,所以我认为它与我的.sh 文件无关print(\'Enter your name:\') x = input() print(\'Hello, \' + x)- 在我的python程序中添加了打印语句,我发现在我导入两个jetson库
Jetson.inference和jetson.utils后程序停止工作。 来自detect.py的代码的 sn-p:
#!/usr/bin/python3 import serial from gpsZEDF9P.ublox_gps import UbloxGps import time import threading as thread from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QMessageBox, QLabel, QVBoxLayout, QHBoxLayout, QFrame, QSizePolicy, QComboBox from PyQt5 import QtCore import sys print(\"this gets printed\") import jetson.utils import jetson.inference print(\"This does not\") ... rest of the code当我从终端运行它时,它可以工作,但是当我通过
.sh文件运行它时,它会在第一个打印语句之后关闭终端。所以我的问题是,这可能是什么? - 在我的python程序中添加了打印语句,我发现在我导入两个jetson库
-
您是否尝试过从终端运行
.sh文件?应该显示错误 -
如果我不得不猜测,当您从终端运行它时,您正在使用另一个环境(可能是 venv 或类似的东西)。导入失败,因为此软件包未在系统范围内安装。但同样,只是一个猜测。看看@mousetail 的建议
-
我尝试在终端中手动运行它,它没有给出任何错误。至少它没有显示任何
-
但要澄清一下,它仍然会立即打开和关闭终端
-
如果您将终端设置为在命令完成后保持打开状态,您可以查看那里的输出