tornado的rq出错ImportError: No module named

本文共有688个字,关键词:

问题:之前是好的,更新软件包之后就出错了
解决:是因为rq没有指定包名
方法:
目录结构:
website
jobs
job_send_email.py   # 处理发送邮件的方法
server
main.py    # 入口文件
site_base.py   # 配置文件
user_handler.py   # 处理文件

在site_base.py中已经指定jobs目录了
sys.path.insert(0, os.path.realpath(os.path.join(os.path.dirname(__file__),"..",'jobs')))
所以在user_handler.py中引入 job_send_email.py 是不需要指定jobs的,否则报错
import job_send_email  # 正确
import jobs.job_send_email # 错误,python后台报错ImportError: No module named 'jobs'
但是在使用rq时需要指定jobs
正确方法:
q.enqueue("jobs.job_send_email.send_email", umail, email_subject, email_html)
错误方法:
q.enqueue("job_send_email.send_email", umail, email_subject, email_html)
这时会报错ImportError: No module named 'job_send_email'

版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。
添加新评论
暂无评论