Я делаю небольшое Django приложение, которое скачивает данные из разных источников.
У меня есть код, который работает корректно на Python 3.9 Windows 10 (а также работает в CloudFunctions на разных площадках):
SCOPES = ['https://www.googleapis.com/auth/drive']
credentials = service_account.Credentials.from_service_account_file('Files/google_credentials.json', scopes=SCOPES)
service = build('drive', 'v3', credentials=credentials)
file_id = '1xw_farCB9iwCol2j9uvRoniB7ECdFz9kca'
request = service.files().export_media(fileId=file_id, mimeType='text/csv')
filename = 'Files/Реестр CERT.csv'
fh = open(filename, 'wb')
downloader = MediaIoBaseDownload(fh, request)
done = False
while done is False:
status, done = downloader.next_chunk()
Однако, при запуске его на сервере Ubuntu 18, Python3.6.9 я получаю следующую ошибку:
Строка: fh = open(filename, 'wb')
Название ошибки: UnicodeEncodeError
Описание ошибки: 'ascii' codec can't encode characters in position 48-53: ordinal not in range(128)
Что уже успел попробовать из того, что поддается логике:
1. Использовать вместо open() - io.FileIO()
2. Изменил кодировку в настройке Ubuntu:
sudo locale-gen en_US en_US.UTF-8
sudo dpkg-reconfigure locales