【问题标题】:Apache2&Django - NameError: name "AttributeError" is not definedApache2&Django - NameError:未定义名称“AttributeError”
【发布时间】:2020-08-17 22:21:05
【问题描述】:

我几乎按照所有官方文档来让我的 Django 项目在我的 Ubuntu 18.04 v-server 上运行。它似乎工作......sudo service apache2 status -> 一切都很好。

[Sun May 03 16:07:20.489608 2020] [mpm_event:notice] [pid 11531:tid 139884218760128] AH00489: 
Apache/2.4.29 (Ubuntu) OpenSSL/1.1.1 mod_wsgi/4.7.1 Python/3.8 configured -- resuming normal operations

[Sun May 03 16:07:20.489764 2020] [core:notice] [pid 11531:tid 139884218760128] AH00094:
Command line: '/usr/sbin/apache2'

我首先注意到,当我的模板在没有服务器重启的情况下无法更新时出现了问题,这不是 Django 的通常行为(即使在生产环境中也是如此)。每当我重新启动服务器时,我都会在 apache2/error.log 中收到此错误。虽然服务器一直在工作,但我想深入了解这一点。

Exception ignored in: <function Local.__del__ at 0x7fbd983f03a0>
Traceback (most recent call last):
  File "/var/www/my_app/.my_app/lib/python3.8/site-packages/asgiref/local.py", line 95, in __del__
NameError: name 'AttributeError' is not defined
Exception ignored in: <function Local.__del__ at 0x7fbd983f03a0>
Traceback (most recent call last):
  File "/var/www/my_app/.my_app/lib/python3.8/site-packages/asgiref/local.py", line 95, in __del__
NameError: name 'AttributeError' is not defined
[Sun May 03 16:07:19.418926 2020] [core:warn] [pid 11433:tid 140452536064960] AH00045: child process 11435 still did not exit, sending a SIGTERM
[Sun May 03 16:07:20.419208 2020] [mpm_event:notice] [pid 11433:tid 140452536064960] AH00491: caught SIGTERM, shutting down
[Sun May 03 16:07:20.489608 2020] [mpm_event:notice] [pid 11531:tid 139884218760128] AH00489: Apache/2.4.29 (Ubuntu) OpenSSL/1.1.1 mod_wsgi/4.7.1 Python/3.8 configured -- resuming normal operations
[Sun May 03 16:07:20.489764 2020] [core:notice] [pid 11531:tid 139884218760128] AH00094: Command line: '/usr/sbin/apache2'
  • Ubuntu 18.04
  • Python3.8.0 并通过 update-alternatives 链接到 python-command
  • 在 venv 中运行的 Python

项目结构:

in /var/www/:
    |-- my_app
    |   |-- my_app
    |   |   |-- __init__.py
    |   |   |-- asgi.py
    |   |   |-- settings.py
    |   |   |-- urls.py
    |   |   `-- wsgi.py
    |   |-- db.sqlite3
    |   |-- manage.py
    |   |-- media
    |   |-- .my_app (python venv)
    |   |-- my_subapp
    |   |   |-- __init__.py
    |   |   |-- admin.py
    |   |   |-- apps.py
    |   |   |-- migrations
    |   |   |-- models.py
    |   |   |-- tests.py
    |   |   |-- urls.py
    |   |   `-- views.py
    |   `-- templates
    |       |-- base.html
    |       `-- index.html

有什么建议可能是错误的,为什么它说“找不到 AttributeError”?当它似乎是一个开箱即用的标准python类时......谢谢你的帮助:-)

【问题讨论】:

  • 您似乎使用 wsgi,但错误似乎来自 asgi。会不会是什么?
  • 是的,我也注意到了。但据我所知,没有禁用它。 asgiref.py 模块在我安装 django 后立即安装。我可以试着用核武器攻击它。哈哈
  • 模板加载器是否设置正确? stackoverflow.com/questions/29007201/…
  • 你运行的是哪个 Django 版本? docs.djangoproject.com/en/3.0/faq/install/…
  • Django 版本 3.0.5,没有使用模板加载器(已弃用),TEMPLATE_DIR 配置正确。

标签: python django apache ubuntu mod-wsgi


【解决方案1】:

我花了一天的时间才找出问题所在 - 感谢 Graham Dumpleton - mod_wsgi 的创建者解释了一切。你可以在这里查看:

https://github.com/GrahamDumpleton/mod_wsgi/issues/568

【讨论】:

    猜你喜欢
    • 2021-03-09
    • 2022-10-16
    • 2018-07-14
    • 2017-12-25
    • 2021-07-17
    • 2012-05-13
    • 2017-08-17
    • 2020-02-24
    • 2021-04-14
    相关资源
    最近更新 更多