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

我刚刚开发了一个小型服务器,用于使用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上以我的普通用户身份运行它可以按预期工作。甚至可以使用sudo -H -u svc_spotify python3 spotifytoexcel.py运行它。

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

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

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

提高了Google的搜索技能后,我发现了另一个答案on overflow,结果证明,我现在需要在任务脚本export LANG=en_US.utf8中设置语言,一切都可以正常工作。

我的脚本现在开始如下:

export PYTHONIOENCODING=utf8
export PYTHONTEXTENCODING=utf8
export LANG=en_US.utf8
本文链接:https://www.f2er.com/3130846.html

大家都在问