Re: Aktualizacja calibre przez crona
Spróbowałem i niewiele to pomogło, poustawiłem większość rzeczy ze zmiennych konta roota, PATH, PYTHONPATH, SHLVL i parę innych.
Zacząłem także eksperymentować z kodem samego pythona odpalanego z crona. Przepisałem najpierw skrypt do pythona
Do momentu pobrania kodu wszystko się ładnie wykonuje. Zrzciłem sobie to do pliku i kod jest pobierany i jest wykonywany. Zacząłem więc testować ten kod. Wydzieliłem go sobie do pliku i odpaliłem. Kompilacja przebiegła pomyślnie. Dodałem do niego wywołanie main jak powyżej i wówczas w konsoli dostałem błąd taki, jak w cronie.
Okazuje się, że problem pojawia się w funkcji wyświetlającej dane na ekranie
Przy normalnym wywołaniu stdout jest terminalem i wszystko jest pięknie. Kiedy ustaliłem standardowe wyjście na plik poprzez
linia
Pokazała błąd, enc była ustawiona na NONE. Wygląda na to, że
nie działa prawidłowo kiedy wyjściem jest plik. Wnioskuję stąd, że kiedy na sztywno ustawiłem enc na utf8 wszystko poszło gładko, informacje zamiast na ekran zapisywały się do pliku i widziałem ruch na łączach.
Ponieważ ten skrypt jest pobierany z serwera nie jestem w stanie tego zmienić w locie. Zastanawiam się, czy mogę jakoś wymusić na nim by ta linijka działała jeżeli wyjściem jest plik. Jest jakaś zmienna, która dla stdout potrafi ustawić encoding.
Przy ustawieniu stdout jak powyżej dostaję następujące wyniki:
Wydaje mi się, że w ten sposób nie da się pobrać kodowania dla wyjścia. Czy jest ktoś, kto zna pythona na tyle, by pomóc mi tak ustawić wyjście by getattr działał lub tak ustawić poprawnie jego kodowanie?