如何修复“TypeError:requires_system_checks 必须是列表或元组。”由“py manage.py grpcrunserver”命令引起的?

问题描述 投票:0回答:2

这是我第一次在这里提出问题,所以如果我做得不好(或其他什么),请对我宽容并帮助!谢谢。

我有一个需要使用 django_grpc_framework 的项目,并且我已经实现了代码,但是当我尝试使用“py manage.py grpcrunserver”运行 grpc 服务器时,我收到以下错误日志:

(.venv) D:\Programming-stuff\PythonProjects\notification>py manage.py grpcrunserver
Traceback (most recent call last):
  File "D:\Programming-stuff\PythonProjects\notification\manage.py", line 22, in <module>
    main()
  File "D:\Programming-stuff\PythonProjects\notification\manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "d:\Programming-stuff\PythonProjects\notification\.venv\Lib\site-packages\django\core\management\__init__.py", line 442, in execute_from_command_line
    utility.execute()
  File "d:\Programming-stuff\PythonProjects\notification\.venv\Lib\site-packages\django\core\management\__init__.py", line 436, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "d:\Programming-stuff\PythonProjects\notification\.venv\Lib\site-packages\django\core\management\__init__.py", line 275, in fetch_command
    klass = load_command_class(app_name, subcommand)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "d:\Programming-stuff\PythonProjects\notification\.venv\Lib\site-packages\django\core\management\__init__.py", line 49, in load_command_class
    return module.Command()
           ^^^^^^^^^^^^^^^^
  File "d:\Programming-stuff\PythonProjects\notification\.venv\Lib\site-packages\django\core\management\base.py", line 284, in __init__
    raise TypeError("requires_system_checks must be a list or tuple.")
TypeError: requires_system_checks must be a list or tuple.

(版本:Python 3.12.0、Django 5.0.1、djangogrpcframework 0.2.1、grpcio-tools 1.60.0、grpcio 1.60.0)

我已经尝试更新 django-extensions,但没有解决问题。我还尝试使用其他方法,例如使用“py services.py”直接运行我的 grpc 服务器,但它也遇到了麻烦(例如不加载应用程序,而且它肯定不是唯一的方法!)。任何帮助将不胜感激<3

django grpc grpc-python
2个回答
0
投票

从 Django 4.1 开始,您不能在命令

Django 4.1 Changelog
中使用布尔值作为 requires_system_checks,并且此包在最新的 0.2.1 版本中的 grpcrunserver 命令中使用它

将 Django 降级到 4.1,它应该开始工作


0
投票

我很难让 django-scheduler 工作,因为安装过程的一部分需要使用 Bower。阅读后我了解到,要安装 Bower 依赖项,Django 使用 grpc 服务器。所以我遇到了完全相同的错误。

以下是我修复此问题的方法,感谢 Ellnamin,他对其他答案进行了评论。

我按照错误路径打开了base.py,如下所示--> C:Example\drive\user\project\Lib\site-packages\djang

© www.soinside.com 2019 - 2024. All rights reserved.