python - 使用 autorun 运行 python 应用程序时出现编码问题

标签 python linux shell raspberry-pi kivy

我正在尝试在我的 Raspberry Pi 上使用自动运行来运行我的 kivy 应用程序。 重新启动我的操作系统后,它会运行,但在执行过程中,我在下一行代码中遇到了编码问题:

CommonData.deviceSettings.Measurement.Alchogol = {}
for s in alchogolSettings:
    key = s["Name"].encode('utf-8').strip()
    value = s["Value"].encode('utf-8').strip()
    CommonData.deviceSettings.Measurement.Alchogol.update({key: value}) 

下一个错误发生在执行过程中

'ascii' codec can't encode characters in position 0-14: ordinal not in range(128)

在我的 .py 文件的顶部,我设置了下一条指令:

 #!/usr/bin/python
    # -*- coding: utf8 -*-

在这种情况下最有趣的是,如果我从普通终端运行这个程序,它会成功启动,但是当我尝试使用自动运行启动它时,会出现这个问题

有人知道为什么会出现这个问题以及如何避免吗?

最佳答案

我找到了这个问题的原因。在我的例子中,我运行一个 python 脚本,它是启动终端并启动另一个 python 脚本。最后一个脚本将一些西里尔文字打印到终端。这就是问题所在。删除此打印指令后,我避免了此错误。这个打印指令位于我在这篇文章中显示的代码之后的一行

关于python - 使用 autorun 运行 python 应用程序时出现编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37210868/

相关文章:

Python subprocess.popen 在与子进程交互时失败

java - 如何使用 java 32 位与 64 位

shell - 每次重新运行终端时,我都必须输入 export PATH=~/anaconda/bin :"$PATH"

c - 发送免费 ARP 消息

linux - Linux + windows + MAC下如何获取系统默认网关地址

bash - 反引号的论点似乎解释了两次?

linux - 为什么双引号会影响 linux 中这些 echo 语句的打印?

异常处理

python - 在列表中搜索字典

python - 两个同时的 Python 循环产生一个结果