Я только что разработал небольшой Сервер для тестирования с помощью Spotify-API. Предполагается запустить по синологии 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 работает как задумано. И даже запуск его с использованием sudo -H -u svc_spotify python3 spotifytoexcel.py
работает как задумано.
Есть ли другой способ принудительного кодирования, или, может быть, кто-то знает, как Synology выполняет задачи и почему это меняет кодировку по умолчанию для python.
Код Visual Studio показывает кодировку UTF-8 всех моих файлов.