Я получаю Python3 UnicodeEncodeError при запуске моего скрипта с помощью планировщика задач Synology. Я не получаю эту ошибку, когда запускаю скрипт через командную строку (используя PuTTY). Почему это и как я могу это решить?Python3 UnicodeEncodeError при запуске через планировщик задач Synology
Простой тестовый скрипт:
import sys
print (sys.version) # to confirm the correct Python version
print("Fichier non trouvé♠ #M–Nein") # to test non ascii characters
test = "Fichier non trouvé♠ #M–Nein"
print ("test is " + test)
test2 = str(test) # to test if the string function causes and issue
print ("test2 is " + test2)
выход Commandline:
[email protected]:/volume1/@appstore/py3k/usr/local/bin$ /volume1/@appstore/py3k/usr/local/bin/python3 /volume1/Documenten/MyPythonScripts/Test.py
3.5.1 (default, Feb 23 2016, 17:46:04)
[GCC 4.9.3 20150311 (prerelease)]
Fichier non trouvé♠ #M–Nein
test is Fichier non trouvé♠ #M–Nein
test2 is Fichier non trouvé♠ #M–Nein
Задача вывода планировщика:
3.5.1 (default, Feb 23 2016, 17:46:04)
[GCC 4.9.3 20150311 (prerelease)]
Traceback (most recent call last):
File "/volume1/Documenten/MyPythonScripts/Test.py", line 3, in <module>
print("Fichier non trouv\xe9\u2660 #M\u2013Nein") # to test non ascii characters
UnicodeEncodeError: 'ascii' codec can't encode characters in position 17-18: ordinal not in range(128)
Примечание: Та же версия Python и скрипт выполняются с помощью
/volume1/@appstore/py3k/usr/local/bin/python3
/volume1/Documenten/MyPythonScripts/Test.py
в обеих ситуациях.
Примечание2: ранее (строка 1) ошибка Unicode происходит, если я запустить скрипт через командную строку, но используя python2.7: (FYI ниже, Python 3 против Python 2)
[email protected]:/volume1/Documenten/MyPythonScripts$ **python3** Test.py
Fichier non trouvé♠ #M–Nein
test is Fichier non trouvé♠ #M–Nein
test2 is Fichier non trouvé♠ #M–Nein
[email protected]:/volume1/Documenten/MyPythonScripts$ **python** Test.py
File "Test.py", line 1
SyntaxError: Non-ASCII character '\xc3' in file Test.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
Эта проблема Unicode может быть решена в python2.7, добавив следующее в качестве 1-й или 2-й линии к сценарию:
# -*- coding: UTF-8 -*-
Затем скрипт работает нормально из командной строки.
Но Складывая это UTF-8 строку не решает проблемы с запуском скрипта из Synology планировщика задач, то ошибка все еще поднят?!
3.5.1 (default, Feb 23 2016, 17:46:04)
[GCC 4.9.3 20150311 (prerelease)]
Traceback (most recent call last):
File "/volume1/Documenten/MyPythonScripts/Test.py", line 4, in <module>
print("Fichier non trouv\xe9\u2660 #M\u2013Nein") # to test non ascii characters
UnicodeEncodeError: 'ascii' codec can't encode characters in position 17-18: ordinal not in range(128)