Python сценарий генерирует все файлы изображений при запуске вручную, но не при запуске как cronjob - PullRequest
1 голос
/ 27 мая 2020

У меня есть Python3 скрипт, который генерирует графики png с использованием matplotlib. Когда я запускаю его вручную на своем сервере, все графики обновляются, но когда я запускаю его как задание cron, только 3 из 9 обновляются должным образом. Я использую абсолютные пути для всего, и все разрешения / права собственности на файлы идентичны.

Что вызывает недоумение, так это то, что cronjob обновляет только некоторые цифры, но не другие, тогда как при ручном запуске они все обновляются. Более того, три обновляемых фигуры создаются в конце скрипта.

Изменить: добавлен пример кода

Это не обновляет мою цифру при запуске как cronjob:

grouped = daily_data.groupby('Province_State')

grouped.apply(lambda d: plt.plot(d.date, d.Incident_Rate, label=d.Province_State.iloc[0]))
plt.savefig('incidence_rate.png')
plt.close()

Но это делает:

plt.plot(daily_data.loc[daily_data.Province_State=='Utah', 'date'],
         daily_data.loc[daily_data.Province_State=='Utah', 'incidence_change'],
         'C1', label="Daily")
plt.plot(daily_data.loc[daily_data.Province_State=='Utah', 'date'],
         daily_data.loc[daily_data.Province_State=='Utah', 'rolling_incidence_change_5_day'],
         'C1--', label='5 day MA')
plt.plot(daily_data.loc[daily_data.Province_State=='Utah', 'date'],
         daily_data.loc[daily_data.Province_State=='Utah', 'rolling_incidence_change_10_day'],
         'C1-.', label='10 day MA')
plt.plot(daily_data.loc[daily_data.Province_State=='Utah', 'date'],
         daily_data.loc[daily_data.Province_State=='Utah', 'rolling_incidence_change_15_day'],
         color='C1', linestyle='dotted', label='15 day MA')
plt.savefig(base_directory+'rolling_incidence_change.png')
plt.close()

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

А! Разместив код, я теперь точно понимаю, в чем проблема. Я не указал путь к ошибочным числам ...

0 голосов
/ 27 мая 2020

возможно, вы сможете отладить его, отправив вывод и stderr в файл и сравнив файл вывода, запускаемый вручную, и файл вывода cron

yourscript > /tmp/out.txt 2>&1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...