Python:当任务执行时,在synology nas上运行我的程序会引发UnicodeEncodeError

问题描述 投票:0回答:1

我刚刚开发了一个小型服务器,用于使用Spotify-API进行一些测试。它应该在synology nas上运行。由于我不希望使用管理员帐户运行该应用程序,因此我创建了一个新用户。然后,我在synology DSM中创建了一个任务,并使用该任务以新创建的用户身份运行我的应用程序。最初,我的编码错误,但是我在文件# -*- coding: utf-8 -*-的标题中添加了编码,然后编码就起作用了。

直到我来到包含UTF-8编码的“ä”的行。

Traceback (most recent call last):
  File "/var/services/homes/svc_spotify/.local/lib/python3.5/site-packages/flask/app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
  File "/var/services/homes/svc_spotify/.local/lib/python3.5/site-packages/flask/app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/var/services/homes/svc_spotify/.local/lib/python3.5/site-packages/flask/app.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/var/services/homes/svc_spotify/.local/lib/python3.5/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/var/services/homes/svc_spotify/.local/lib/python3.5/site-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "/var/services/homes/svc_spotify/.local/lib/python3.5/site-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/volume1/Programmieren/Python/SpotifyToExcel/spotifyAuth.py", line 73, in spotify
    log("Token erhalten, Server f\xe4hrt herunter")
  File "/volume1/Programmieren/Python/SpotifyToExcel/spotifyAuth.py", line 24, in log
    logFile.write("{}: {}\n".format(datetime.datetime.now(), text))
UnicodeEncodeError: 'ascii' codec can't encode character '\xe4' in position 52: ordinal not in range(128)

然后,我在启动程序的脚本中添加了export PYTHONTEXTENCODING=utf-8。也不起作用。

现在很奇怪的部分:在ssh shell上以我的普通用户身份运行它可以按预期工作。甚至可以使用export PYTHONTEXTENCODING=utf-8运行它。

还有另一种我可以强制编码的方式,或者有人知道synology如何运行任务以及为什么会更改python的默认编码。

Visual Studio Code将UTF-8显示为我所有文件的编码。

我刚刚开发了一个小型服务器,用于使用Spotify-API进行一些测试。它应该在synology nas上运行。由于我不希望使用管理员帐户运行该应用程序,因此我创建了一个新用户。然后我...

flask character-encoding python-3.5 synology
1个回答
0
投票

提高了我的Google搜索能力之后,我发现了另一个答案sudo -H -u svc_spotify python3 spotifytoexcel.py,结果证明,我现在需要在任务脚本on overflow中设置语言,现在一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.