python - 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"
解决方案
推荐阅读
- google-query-language - 如何修复“函数 ARRAY_ROW 参数 2 的行大小不匹配”。预期:613。实际:1。谷歌表格中的错误消息
- mysql - 尝试使用 SOURCE 命令在 wamp 中运行 .sql 文件,但我收到错误消息“未知数据库”。我究竟做错了什么?
- java - How to handle if @PatchMapping request is not valid
- mysql - 为多个位置选择每个唯一日期的最大值
- javascript - 在不选择的情况下将 .txt 文件加载到 JavaScript 变量中
- sql-server - 需要其他方法来编写 SELECT 查询
- java - php windows中的java文件编译问题
- dji-sdk - 从 dji 无人机直播到本地服务器的最佳设置是什么?
- c++ - 对 std::string 和 std::vector 类方法的未定义引用错误
- ionic-framework - 如何在 ionic v3 中清除缓存