Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1.2K
Visualizações
PytzUsageWarning: el atributo de zona es específico de la interfaz de pytz; migre a un nuevo proveedor de zona horaria

Estoy escribiendo una función simple que envía mensajes según un cronograma usando AsyncIOScheduler.

 scheduler = AsyncIOScheduler() scheduler.add_job(job, "cron", day_of_week="mon-fri", hour = "16") scheduler.start()

Parece funcionar, pero siempre recibo el siguiente mensaje:

 PytzUsageWarning: The zone attribute is specific to pytz's interface; please migrate to a new time zone provider. For more details on how to do so, see https://pytz-deprecation-shim.readthedocs.io/en/latest/migration.html PytzUsageWarning: The localize method is no longer necessary, as this time zone supports the fold attribute (PEP 495)

No estoy familiarizado con el tiempo en python, por lo que no estoy muy seguro de lo que este mensaje me pide que haga. Visité el enlace provisto en el mensaje, pero la explicación allí es demasiado complicada para mí. Según tengo entendido, tengo que migrar para usar PEP495, pero ¿cómo puedo hacer exactamente eso?

over 4 years ago · Santiago Trujillo
4 Respostas
Responde à pergunta

0

Para establecer una zona horaria compatible con PIP495 en APScheduler, establezca un parámetro al crear una instancia del programador:

 scheduler = AsyncIOScheduler(timezone="Europe/Berlin") scheduler.add_job(job, "cron", day_of_week="mon-fri", hour = "16") scheduler.start()

Con flask-APScheduler (versión 1.12.2), agregue la zona horaria a la clase de configuración:

 """Basic Flask Example from flask-apscheduler examples, file jobs.py""" from flask import Flask from flask_apscheduler import APScheduler class Config: """App configuration.""" JOBS = [ { "id": "job1", "func": "jobs:job1", "args": (1, 2), "trigger": "interval", "seconds": 10, } ] SCHEDULER_API_ENABLED = True SCHEDULER_TIMEZONE = "Europe/Berlin" # <========== add here def job1(var_one, var_two): print(str(var_one) + " " + str(var_two)) if __name__ == "__main__": app = Flask(__name__) app.config.from_object(Config()) scheduler = APScheduler() scheduler.init_app(app) scheduler.start() app.run()
over 4 years ago · Santiago Trujillo Relatório

0

Por ahora, no puede suprimir de manera efectiva estas advertencias, porque el problema proviene del propio apscheduler .

En su caso particular, la advertencia proviene de aquí .

 if obj.zone == 'local':

El problema es que pytz se considera obsoleto a favor del módulo zoneinfo y sus backports. Entonces, incluso si establece directamente el argumento de la timezone como se sugirió anteriormente, probablemente enfrentará la misma advertencia en otros lugares hasta que apsheduler arregle el uso de pytz para la versión moderna de Python.

Pero aún así, en realidad, hay algo que podría hacer , pero no estoy seguro de si ese tipo de arreglos es aceptable para usted.

PytzUsageWarning proviene del paquete pytz_deprecation_shim , que es la dependencia de tzlocal . tzlocal está profundamente integrado con pytz . Como apscheduler tiene una dependencia relativamente relajada para tzlocal , puede instalar una versión bastante antigua de una, que no tiene esa advertencia, pero aún es aceptable para apsscheduler .

 pip install tzlocal==2.1

Pero, por favor, presta atención , podría romper otras dependencias del proyecto , así que ten cuidado.

over 4 years ago · Santiago Trujillo Relatório

0

Recibía el mismo mensaje de advertencia debido a la zona.

Lo que hice fue:

 import tzlocal scheduler = AsyncIOScheduler(timezone=str(tzlocal.get_localzone()))

Con esa zona horaria local, ya no recibo el mensaje de advertencia y funciona correctamente.

over 4 years ago · Santiago Trujillo Relatório

0

Acabo de cambiar a

 if __name__ == '__main__': scheduler = BlockingScheduler(timezone=pytz.timezone('Asia/Ho_Chi_Minh'))
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda