首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python脚本无法使用utf-8字符集systemd控制mpd

Python脚本无法使用utf-8字符集systemd控制mpd
EN

Stack Overflow用户
提问于 2019-01-04 03:20:37
回答 1查看 281关注 0票数 2

我已经在Raspberry Pi上安装了MPD,并编写了一个Python脚本,以便在扫描RFID卡时播放播放列表。

我的问题是,当我在控制台中调用脚本时,它工作得很好。它会播放所有的播放列表。但是当它作为一项服务启动时,我只能播放没有äöüß utf8-charset的播放列表。

我现在的问题是,我如何才能让脚本作为一种服务为utf-8播放列表工作?

下面是我的脚本:

代码语言:javascript
复制
#!/usr/bin/python
# coding=utf-8
import io
import os
import serial
from mpd import MPDClient

with io.open("/var/lib/mpd/mnt/playlists/liste.txt", "r", encoding="utf8") as f:
        list = f.read()
list = list.strip()
list = list.replace("\n","")
list = list[:-1].split(";")

while True:
        ser = serial.Serial("/dev/serial0", baudrate=9600)
        rfid = ser.read(14)

        try:
                tag = { "raw" : rfid,
                        "mfr" : int(rfid[1:5], 16),
                        "id" : int(rfid[5:11], 16),
                        "chk" : int(rfid[11:13], 16)}

                print "Read Card : %s" % tag['id']

                cardnr = str(tag['id'])
                listid = list.index(cardnr)

                print(cardnr)

                plist = list[listid-1]

                print(plist)

                client = MPDClient()
                client.timeout = 10
                client.idletimeout = None
                client.connect("localhost", 6600)
                client.update()

                print "Connected..."

                client.clear()
                print "cleared"
                client.load(plist)
                print(client.playlist())
                print "Playlist geladen"
                client.play(0)
                print "Abspielen"
                client.close()
                client.disconnect()

        except:
                print "error"

systemd服务:

代码语言:javascript
复制
[Unit]
Description=Listen to RFID-reader and play mopidy playlists
Requires=mpd.service networking.service
After=mpd.service networking.service

[Service]
Type=idle
Restart=always
ExecStart=/usr/bin/python /var/lib/mpd/mnt/scripts/play.py

[Install]
WantedBy=multi-user.target

locale的输出:

代码语言:javascript
复制
LANG=de_DE.UTF-8
LANGUAGE=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-06 03:27:52

使用ExecStart=/usr/bin/**python3** /var/lib/mpd/mnt/scripts/play.py运行该脚本很有帮助。

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

https://stackoverflow.com/questions/54028525

复制
相关文章

相似问题

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