【问题标题】:`NameError: name 'TypeError' is not defined` in Apache (mod_wsgi)`NameError: name 'TypeError' is not defined` 在 Apache (mod_wsgi)
【发布时间】:2021-02-16 19:31:03
【问题描述】:

安装版本

阿帕奇

  • apr-1.6.5
  • apr-util-1.6.1
  • httpd-2.4.7
  • mod_wsgi-4.6.8
  • pcre-8.32

Python

  • 3.8.5

姜戈

  • 3.1.2

Apache http.conf

Listen 3600
WSGISocketPrefix /var/run/wsgi
<VirtualHost *:3600>
    WSGIDaemonProcess project_name display-name=project_name
    WSGIScriptAlias / /data/project_name/config/wsgi.py  process-group=api application-group=api
    ServerName project_name
    <Directory /data/project_name/config>
        Order allow,deny
        Allow from all
        Require all granted
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>
</VirtualHost>

错误日志

Exception ignored in: <function Local.__del__ at 0x7fd675a70a60>
Traceback (most recent call last):
  File "/data/venv/api/lib/python3.8/site-packages/asgiref/local.py", line 96, in __del__
NameError: name 'TypeError' is not defined

上面的错误日志一遍又一遍地出现。
不知道为什么不使用asgi的时候会出现asgi相关的错误。

【问题讨论】:

  • 我也观察到这一点,从今天开始。 TypeError 是 Python 内置的。可能这是 Python 解释器关闭时的竞赛?
  • @TorstenBronger 嗨,如果未使用选项 WSGIDaemonProcess,则不会发生错误。还有其他解决办法吗?
  • 不幸的是,它对我来说是一个“Heisenbug”——在对其进行故障排除时,由于其他原因它消失了。
  • 升级python3-distupgrade后相同。也许这个包更新会导致问题?
  • 如何解决?升级 python3-distupgrade 没有帮助。

标签: apache mod-wsgi wsgi python-3.8 asgi


【解决方案1】:

我在日志中看到了相同的类似内容,只是在 apache 关闭期间(并因此重新启动)。在关闭 python 解释器时,后台线程可能仍在运行,正如几年前@GrahamDumpleton 在类似风格的问题(有不同的错误)中所回答的那样。见NameError: name 'hasattr' is not defined - Python3.6, Django1.11, Ubuntu16-17, Apache2.4, mod_wsgi

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-09
    • 2022-12-02
    • 2013-04-09
    • 1970-01-01
    • 2020-11-07
    • 2017-01-09
    • 2017-06-14
    相关资源
    最近更新 更多