Python 名称错误 : global name 'any' is not defined

标签 python any

我的生产服务器出现以下错误:

Traceback (most recent call last):

 File "/usr/lib/python2.4/site-packages/django/core/handlers/base.py", line 89, in get_response
response = middleware_method(request)
 File "myproject/middleware.py", line 31, in process_request
if not any(m.match(path) for m in EXEMPT_URLS):

NameError: global name 'any' is not defined

服务器正在运行 python 2.6,并且在开发中没有出现这个错误。违规代码在 middleware.py 中:

...
if not request.user.is_authenticated():
        path = request.path_info.lstrip('/')
        if not any(m.match(path) for m in EXEMPT_URLS):
            return HttpResponseRedirect(settings.LOGIN_URL)

我是否应该重写这个 any 函数来解决这个问题?

最佳答案

您实际上是在 Python 2.4 上运行,它没有内置的 any

如果你需要定义自己的any,很简单:

try:
    any
except NameError:
    def any(s):
        for v in s:
            if v:
                return True
        return False

关于Python 名称错误 : global name 'any' is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9037821/

相关文章:

python - 如何在 Python (Flask) 应用程序中捕获 psycopg2.errors.UniqueViolation 错误?

python - 如何在 Python 中制作可执行文件?

python - 在 PySpark 上将日期时间转换为日期

python - PyQt 基于颜色的复选框未设置模型数据

java - Hibernate @Any 注解用法

entity-framework - 具有复合键的自定义 EF Core AddOrUpdate

python - Numpy - 直接使用 np.isnan 和在临时变量中保存 bool 值时的差异。多变的

python - 按字母顺序对查询中的单词进行排序,并从各行中删除重复的单词

Python:一旦找到真值,any() 是否会停止迭代列表/生成器?

r - 为什么 any() 只为数字而不是逻辑 data.frame 定义?