首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的python程序在双击.sh文件时不运行?

为什么我的python程序在双击.sh文件时不运行?
EN

Stack Overflow用户
提问于 2022-08-11 12:32:33
回答 2查看 99关注 0票数 -2

操作系统: Ubuntu

设备: Jetson Nano developer kit 2GB

我有一个python程序,我想通过双击启动。这是因为我想用触摸屏来控制整个设备。我编写了一个.sh文件来启动python程序,但是当我双击它时,终端就会打开并立即关闭,当我通过终端手动运行.sh文件时,也会发生同样的情况。

.sh文件:

代码语言:javascript
复制
#!/usr/bin/env bash
echo "Starting"
sleep 1
cd /home/velotech/workspace
python3 detect.py

奇怪的是,当我从终端手动运行命令python3 detect.py时,程序运行得很好。我尝试过的事情:

  1. 制作了一个简单的hello.py程序,这个程序通过双击.sh文件和通过终端来工作,所以我不认为它与我的.sh文件

有关

代码语言:javascript
复制
print('Enter your name:')
x = input()
print('Hello, ' + x)

  1. 在我的python程序中添加了print语句,在导入两个jetson库Jetson.inferencejetson.utils之后,我发现程序停止工作。来自detect.py

的代码片段

代码语言:javascript
复制
#!/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文件运行它时,它会在第一个print语句之后关闭终端。所以我的问题是,这是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-23 18:42:57

如果其他人遇到这种情况,在我更新了jetson_utils和Jetson推断库之后,jetson_utils和Jetson推断抛出了一个警告,警告说jetson.utils和jetson.inference是不推荐的,而是使用jetson_utils和jetson_inference。这样做之后,我能够从一个.sh文件中运行程序,并通过双击它。

票数 0
EN

Stack Overflow用户

发布于 2022-08-12 00:57:07

你在跑:

代码语言:javascript
复制
python3 detect.py

通过运行此选项进行调试:

代码语言:javascript
复制
python3 -m site
sleep 30

验证在终端和双击环境中是否使用了相同的$PYTHONPATH / sys.path。注意,如果注意到不匹配,或者使用export或相应的venv命令,则要为该env设置一个新值,因此在这两种环境中都可以使用相同的库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73320712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档