Python 'Импорт pyodbc' не работает в задаче крона

После обновления машины сервера к 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'. Что я могу сделать для решения проблемы?

1
задан 24 August 2016 в 14:06

2 ответа

Хорошо, благодаря предложению Jacob Vlijm, я наконец узнал решение: пакет' pyodbc' был установлен под user1 (/home/user1/.local/lib/python3.5/site-packages/). Когда я вошел в систему как user1 в моем терминале, программа могла найти модуль. Используя cron, я обычно запускаю программы при другом пользователе (user2).

, Который был проблемой. Работая в кроне через user1, все было в порядке. Последний вопрос, который я исследую, состоит в том, почему команда '114' сделала пакет доступным для user1 а не всем пользователям.

1
ответ дан 7 December 2019 в 15:49

Хорошо, сделайте свою программу как это

#!/usr/bin/env python3
import pyodbc

, Дают исполняемые полномочия как

chmod +x filename.py

и теперь добавляют его крон, и позволяет, посмотрите.

0
ответ дан 7 December 2019 в 15:49

Другие вопросы по тегам:

Похожие вопросы: