Программа Python отлично работает в терминале, но не запускается в запланированной задаче WindowsPython

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

Сообщение Anonymous »

Я пытаюсь выяснить, почему мой скрипт Python не запускается в диспетчере задач Windows. Я запланировал множество задач, включая даже задачи по перезапуску Windows, но эта проблема меня сбила с толку. Вот часть моего скрипта Python от начала до момента остановки:

Код: Выделить всё

import pandas as pd
import numpy as np
import time
import datetime
import os
from pathlib import Path
import pyodbc
import sqlalchemy as sql
import inspect
import requests
import configparser
import re
import time
import math
from io import StringIO
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

logstuff = dict()
logstuff['Duplicity'] = 1
logstuff['basename'] = Path(__file__).stem

def GetLogFile():
global logstuff
LogFileName = os.environ['TEMP'] + '\\TWCO'
if not os.path.exists(LogFileName):
os.mkdir(LogFileName)
# print("In function: logstuff[basename]=" + logstuff['basename'])
if 'basename' in logstuff.keys():
LogFileName = LogFileName + "\\" + logstuff['basename'] + datetime.datetime.now().strftime("%Y%m%d-%H%M%S") + ".log"
else:
LogFileName = LogFileName + "\\" + Path(__file__).stem + datetime.datetime.now().strftime("%Y%m%d-%H%M%S") + ".log"
SALog = open(LogFileName, "w")
SALog.write("Python program " + Path(__file__).stem + " starting...\n")
logstuff['FileNumber'] = SALog
logstuff['FileName'] = LogFileName
return logstuff

def logsomething(logstring):
global logstuff
output = (datetime.datetime.now()).strftime("%Y-%m-%d %H:%M:%S") + " " + logstring
if logstuff['FileNumber']:
logstuff["FileNumber"].write(output + "\n")
if logstuff['Duplicity'] == 1:
print(output)
else:
print(output)

def ChangeDate(Date):
return datetime.datetime.strftime(datetime.datetime.strptime(Date, "%a, %d %b %Y %H:%M:%S"), "%d/%b/%Y %H:%M:%S")

def MakeBigInt(MyVar):
if isinstance(MyVar, float):
if math.isnan(MyVar):
return 0
else:
return int(MyVar)
else:
return int(MyVar)

def MakeString(MyVar):
if isinstance(MyVar, (float, int)):
if math.isnan(MyVar):
return ""
else:
return str(MyVar)
if isinstance(MyVar, str):
return MyVar

def MakeFloat(MyVar):
return float(MyVar)

start_time = time.time()

# os.system('cls')
ComputerName = os.environ['COMPUTERNAME']
ScriptName = str(Path(__file__))

GetLogFile()

logsomething("Reading the configuration files.")
config = configparser.ConfigParser(interpolation=None)
logsomething("Loaded ConfigParser")
config.read("//pri-lvm-na01/export_five9/Util/Five9CredsSA.ini")
logsomething("Opened Five9CredsSA.ini")
Five9Username = config['Communications']['Five9UserName']
logsomething("Five9 User Name: " + Five9Username)
Five9Password = config['Communications']['Five9Password']
logsomething("Five9 Password (don't tell anyone): " + Five9Password)
Мой файл журнала печатает «Opened Five9CredsSA.ini» и больше ничего. Задача завершается с результатом 0x1. Я убедился, что папка «Начало» в планировщике задач указывает на то, где находится мой код; Я попытался настроить задачу для запуска от имени администратора (запуск с наивысшими привилегиями), а также в пользовательском режиме. Я переустановил Python 3.12 в режиме «все пользователи» (после удаления того, что находится в моей папке appdata) и переустановил все режимы администратора, чтобы они существовали для всех. Должно быть, я что-то упускаю, поскольку я несколько раз искал в Интернете, и все рекомендации, похоже, мне не помогли. Я считаю, что это проблема, связанная с configparser, поскольку именно здесь он перестает работать, но я не вижу никаких ошибок в файле журнала, который я пытался создать. Пакетный файл, который я запускаю:

Код: Выделить всё

echo Running Program > Five9INRRpt.log
"C:/Program Files/Python312/python.exe" c:/Software/Py/Five9INRRpt.py >> Five9INRRpt.log
И результат такой:

Код: Выделить всё

Python program Five9INRRpt starting...
2024-12-16 19:55:37 Reading the configuration files.
2024-12-16 19:55:37 Loaded ConfigParser
2024-12-16 19:55:40 Opened Five9CredsSA.ini
По-видимому, он может открыть файл конфигурации, но когда он пытается его прочитать, возникает ошибка. На компьютере, на котором я это запускаю, в качестве операционной системы установлена ​​Windows 11 Enterprise.
Большое спасибо!

Подробнее здесь: https://stackoverflow.com/questions/792 ... duled-task
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»