Сценарий Python не запускается с помощью Cronjob, но выполняется из браузера - PullRequest
0 голосов
/ 26 декабря 2018

Файл Python начинает выполняться, но их, я получаю ошибку -


Время: 2018-12-26 13: 00: 01.751099 Трассировка (последний последний вызов):

File "/home/username/public_html/cgi-bin/pull.py", line 13, in <module>
   df = pd.read_csv('Datasets/MC_Master.csv')
File "/home/username/.local/lib/python3.5/site- 
packages/pandas/io/parsers.py", line 678, in parser_f
  return _read(filepath_or_buffer, kwds)

File "/home/username/.local/lib/python3.5/site- 
packages/pandas/io/parsers.py", line 440, in _read
parser = TextFileReader(filepath_or_buffer, **kwds)

File "/home/username/.local/lib/python3.5/site-packages/pandas/io/parsers.py", line 787, in __init__
self._make_engine(self.engine)

File "/home/username/.local/lib/python3.5/site-packages/pandas/io/parsers.py", line 1014, in _make_engine
self._engine = CParserWrapper(self.f, **self.options)

File "/home/username/.local/lib/python3.5/site-packages/pandas/io/parsers.py", line 1708, in __init__
self._reader = parsers.TextReader(src, **kwds)

File "pandas/_libs/parsers.pyx", line 384, in pandas._libs.parsers.TextReader.__cinit__

File "pandas/_libs/parsers.pyx", line 695, in pandas._libs.parsers.TextReader._setup_parser_source

**FileNotFoundError: File b'Datasets/MC_Master.csv' does not exist**

Файл MC_Master.csv содержится в cgi-bin / Datasets

PS: он отлично работает, используя команду shebang $ python3 pull.py , пока я нахожусьв каталоге cgi-bin .

Будем благодарны за любые указания.

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Это потому, что вы используете относительный путь в вашем скрипте, когда вы работаете из каталога cgi-bin, относительные пути работают нормально, но при работе с cron программа выполняется с домашним каталогом пользователя в качестве рабочего каталога.Чтобы преодолеть эту проблему, как упомянул @Gaurav, используйте абсолютный путь в скриптах или просто измените текущий рабочий каталог в программе, используя os.chdir('/path/to/cgi-bin') перед доступом к файлам.

0 голосов
/ 26 декабря 2018

Вы должны использовать абсолютный путь для набора данных.Попробуйте изменить Dataset / file.csv на /cgi-bin/Dataset/file.csv или любой другой абсолютный путь.

...