问题:之前是好的,更新软件包之后就出错了
解决:是因为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'