我正在使用 gTTS for Python在树莓派3上开发应用程序:
from gtts import gTTS
import os
import threading
def greet_thread(word):
tts_thread = threading.Thread(target = greet, args=[word])
tts_thread.start()
def greet(word):
tts = gTTS(text=word, lang='es')
tts.save("words.mp3")
print 'Reproduciendo audio'
os.system("mpg321 -q presilence.mp3")
os.system("mpg321 -q words.mp3")
如果我直接从外壳运行python脚本,这将非常有效。但是,如果我使用以下命令在后台执行python脚本:
python -u script.py > log.txt 2>&1 &
我在日志中收到此错误:
tcgetattr(): Inappropriate ioctl for device
,不知道为什么。我认为这是从后台进程调用的方式,但不知道如何解决。感谢您的关注和帮助
答案 0 :(得分:1)
问题在于该程序需要使用执行GUI的同一用户来执行。因此,如果要在命令外壳中执行它,请避免使用“ root”用户。
就我而言,我也需要程序在启动时执行。所以我用“自动启动”代替了crontab来解决了这个问题
编辑文件:
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
//您的script.sh
//或@python script.py
@xscreensaver-不飞溅
@ point-rpi
保存并退出
重新启动