ModuleNotFoundError:没有名为“apscheduler.schedulers”的模块; 'apscheduler' 不是一个包
出现这样的错误。
我已经安装了apscheduler库。
使用的版本:python3.11.0
使用的框架:Django
apscheduler.py
from apscheduler.schedulers.background import BackgroundScheduler
from datetime import datetime, timedelta
import pytz
import requests
import json
from .models import Todo
def notify_todo():
#現在の時刻を取得
now = datetime.now(pytz.timezone('Asia/Tokyo'))
#締切が24時間以内のTODOリストを取得
todos = Todo.objects.filter(deadline__range=(now, now + timedelta(days=1)))
for todo in todos:
#LINE NotifyのAPIトークンを取得
api_token = 'xxxxxxxxxxxxxxxxxxxx'
#通知メッセージの作成
message = f"【{todo.title}】\n締切時間:{todo.deadline.strftime('%Y/%m/%d %H:%M')}\n詳細:{todo.description}"
#LINE Notifyに通知を送信
headers = {'Authorization': f'Bearer {api_token}'}
payload = {'message': message}
requests.post('xxxxxxxxxxxxxxxxxxxxxxx', headers=headers, data=payload)
#BackgroundSchedulerの設定
scheduler = BackgroundScheduler(timezone='Asia/Tokyo')
scheduler.add_job(notify_todo, 'interval', minutes=10)#10分ごとに実行
scheduler.start()
models.py
from django.db import models
class Todo(models.Model):
title = models.CharField("タスク名", max_length=30)
description = models.TextField("詳細", blank=True)
deadline = models.DateField("締切")
ttime = models.TimeField("")
def __str__(self):
return self.title
apps.py
from django.apps import AppConfig
class TodoConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'todo'
def ready(self):
from .apscheduler import start
start()
听起来你有一个模块
apscheduler
在某个地方被导入而不是实际的包。你的项目目录里有apscheduler.py
吗?如果是,请将其删除。