gpt4 book ai didi

python - gTTS Python 脚本在后台获取 tcgetattr() : Inappropriate ioctl for device

转载 作者:行者123 更新时间:2023-12-01 09:18:40 24 4
gpt4 key购买 nike

我正在我的树莓派 3 上开发一个应用程序,使用 Python 的 gTTS:

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")

如果我直接从 shell 运行 python 脚本,这将非常有效。但是如果我使用以下命令在后台执行 python 脚本:

python -u script.py > log.txt 2>&1 &

我在日志中收到此错误:

tcgetattr(): Inappropriate ioctl for device

而且不知道为什么。我认为这是从后台进程调用它的方式,但不知道如何解决它。感谢您的关注和帮助

最佳答案

问题在于该程序需要使用执行 GUI 的同一用户来执行。因此,如果您要在命令 shell 中执行它,请避免使用“root”用户。

就我而言,我也需要程序在启动时执行。所以我使用“自动启动”而不是 crontab 解决了这个问题

  1. 导航至 ~/.config/lxsession/LXDE-pi
  2. 纳米自动启动
  3. 编辑文件:

    @lxpanel --配置文件 LXDE-pi

    @pcmanfm --desktop --profile LXDE-pi

    //你的脚本.sh

    //或@python script.py

    @xscreensaver -无飞溅

    @point-rpi

  4. 保存并退出

  5. 重新启动

关于python - gTTS Python 脚本在后台获取 tcgetattr() : Inappropriate ioctl for device,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50996129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com