首页 > 解决方案 > Heroku:gunicorn 没有识别 Django 项目中的自定义模块

问题描述

我在我的 Django 应用程序中使用了一个自定义模块,当我尝试在 Heroku 中部署它时,gunicorn 没有检测到这个模块。

这是我在 manage.py 中的代码,我在其中导入了相对于模块的导入

from .defs import log_transform

目录结构如下 链接

档案:

web gunicorn myapp.wsgi --log-file -

这是我得到的构建错误

文件“/tmp/build_2aedef2/manage.py”,第 6 行,在

       from .defs import log_transform
       ImportError: attempted relative import with no known parent package
 !     Error while running '$ python manage.py collectstatic --noinput'.
       See traceback above for details.
       You may need to update application code to resolve this error.
       Or, you can disable collectstatic for this application:
          $ heroku config:set DISABLE_COLLECTSTATIC=1
       https://devcenter.heroku.com/articles/django-assets
 !     Push rejected, failed to compile Python app.

日志如下

return _getattribute(sys.modules[module], name)[0]
2021-06-26T07:11:29.515762+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/pickle.py", line 331, in _getattribute
2021-06-26T07:11:29.515763+00:00 app[web.1]: raise AttributeError("Can't get attribute {!r} on {!r}"2021-06-26T07:11:29.515763+00:00 app[web.1]: AttributeError: Can't get attribute 'log_transform' on <module '__main__' from '/app/.heroku/python/bin/gunicorn'>
2021-06-26T07:11:29.518944+00:00 app[web.1]: 10.7.237.91 - - [26/Jun/2021:07:11:29 +0000] "GET /result/?csrfmiddlewaretoken=rYlkcjC8Gx6y8zgXZ5cIABjg58UsmjuWzO9MqH3E1frADPTNY4pObgJ9itQMz8vj&FA=10.2&VA=0.32&CA=0.45&RS=6.4&CL=0.073&TSD=13&PH=3.23&SU=0.83&AL=12.6 HTTP/1.1" 500 89852 "https://wineprediction012.herokuapp.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36"

标签: pythondjangoheroku

解决方案


推荐阅读