Django后端程序,使用python manage.py 的时候可以正常执行,但是uwsgi的时候不行了
提示 no model named 'apscheduler'
定时任务的代码是:
from apscheduler.schedulers.background import BackgroundScheduler
import time
scheduler = BackgroundScheduler()
@scheduler.scheduled_job(trigger='interval', seconds=5, id='test')
def test_job():
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
scheduler.start()
结果还是提示:
no model named 'apscheduler'
尝试解决:
使用pip install apscheduler==3.6.1了,但是还是提示这个错误
有几种可能的解决方法:
1、确保已经使用 pip install apscheduler==3.6.1 或者类似的命令正确安装了 apscheduler 库。可以尝试在项目根目录下再次运行这个命令,以确保库已经正确安装。
2、如果使用的是虚拟环境,确保已经在正确的虚拟环境中进行了安装。
3、在 Django 项目中添加 apscheduler 库到 INSTALLED_APPS 列表中,这样 Django 就会知道这个库已经安装并且可以使用了。
4、尝试在 Django 项目的 settings.py 文件中将 apscheduler 库添加到的 MIDDLEWARE 列表中,这样可能会解决这个问题。
apscheduler 这个model 在项目里搜一下, 看下是否是自定义的, 然后重启电脑(一定要试试)
这个报错是没有名为“apscheduler”的模型,所以排查方向主要是
1、是否安装【已确认安装】
2、是否导入,如下:
import sys
sys.path.append("D:\\software\\Python\\anaconda\\envs\\xxx\\lib\\site-packages") #你的安装apscheduler路径
from apscheduler.schedulers.blocking import BlockingScheduler
3、导入路径是否正确,最好是全英文路径
4、编译环境是否一致,高低版本差异【最后排查】
【出现该类报错的解题思路】
Windows系统 不支持 django 的定时任务别浪费时间拉。