Ошибка request.urlretrieve при запуске в виде запланированной задачи в PythonAnywhere - PullRequest
0 голосов
/ 08 мая 2018

У меня есть скрипт .py, который работает, когда я запускаю его в консоли, но, похоже, не работает, когда я планирую его как автоматическое задание. Сценарий использует urllib.request (я установил Hashbang для запуска Python 3.6, который поддерживает этот пакет) для загрузки и загрузки файла с определенного URL-адреса. Опять же, нет проблем, когда я запускаю его вручную, но когда он запускается как по расписанию я получаю эту ошибку:

Traceback (most recent call last):   File
"/home/laiAdmin/Scripts/FullAutoSubStats.py", line 32, in <module>
     urllib.request.urlretrieve(URL, dlFileName)   File "/usr/lib/python3.6/urllib/request.py", line 258, in urlretrieve
     tfp = open(filename, 'wb') FileNotFoundError: [Errno 2] No such file or directory:
 '/home/laiAdmin/Data_Files/Downloads/FWdirect-Daily-Stats-Parser-autoDl-2018-05-08.json'

 2018-05-08 16:48:11 -- Completed task, took 6.00 seconds, return code
 was 1.

Фрагмент кода, на который он указывает, является следующим (скрытие полного URL в целях безопасности):

#Get timestamp and PWD
cwd = os.getcwd()
now = DT.datetime.utcnow()-DT.timedelta(hours=6)
todayStr = DT.datetime.strftime(now,"%Y-%m-%d")
nowStr = DT.datetime.strftime(now,"%m/%d/%Y %H:%M:%S")

#Request to download a new json file:
rootdir = cwd+'/Data_Files/Downloads/'
URL = "https://files.mailparser.io/d/*****" 
#(hiding the full URL here for security purposes)
fn = "FWdirect-Daily-Stats-Parser-autoDl-"+todayStr+".json"
dlFileName = rootdir+fn
urllib.request.urlretrieve(URL, dlFileName)

Последняя строка - это место, где происходит трассировка. Пожалуйста, помогите мне понять, почему это происходит, когда я нажимаю запустить в консоли, но не получается, когда я планирую это как задачу.

1 Ответ

0 голосов
/ 08 мая 2018

Очень глупо, но я только что понял. Оказывается, при выполнении запланированной задачи она запускается из другого каталога, который вызывал проблему.

Спасибо giles на pythonany где-то за то, что предупредили меня: https://www.pythonanywhere.com/forums/topic/12790/#id_post_49647

Требуется для перехода к нужному каталогу в планировщике задач:

cd /home/laiAdmin/something/something; python3.6 /home/laiAdmin/myscript.py

...