После обновления машины сервера к Ubuntu 16.04 все программы Python, запущенные кроном, перестали работать на 'импорт pyodbc' оператор. Я обычно устанавливал тот пакет через
pip3 install pyodbc
Если я создаю простую программу containgin просто инструкция 'import pyodbc'
, это работает, если я выполняю его из командной строки:
$ python3 /home/test.py
$
Я дал той же программе команду быть выполненной от крона (вот соответствующая часть crontab):
$ crontab –l
0,5,10,15,20,25,30,35,40,45,50,55 8,10,12-18 * * * python3 /home/test.py 1>>/var/log/python3.log
Затем в файле журнала я добираюсь:
Traceback (most recent call last):
File "/home/test.py", line 1, in <module>
import pyodbc
ImportError: No module named 'pyodbc'
Результатом является то же, если я работаю от 'основного' крона или от пользователя crontab'. Что я могу сделать для решения проблемы?
Хорошо, благодаря предложению Jacob Vlijm, я наконец узнал решение: пакет' pyodbc
' был установлен под user1 (/home/user1/.local/lib/python3.5/site-packages/
). Когда я вошел в систему как user1 в моем терминале, программа могла найти модуль. Используя cron
, я обычно запускаю программы при другом пользователе (user2
).
, Который был проблемой. Работая в кроне через user1, все было в порядке. Последний вопрос, который я исследую, состоит в том, почему команда '114' сделала пакет доступным для user1 а не всем пользователям.
Хорошо, сделайте свою программу как это
#!/usr/bin/env python3
import pyodbc
, Дают исполняемые полномочия как
chmod +x filename.py
и теперь добавляют его крон, и позволяет, посмотрите.