Django Performing system checks 卡住了 ,排查方法请教

PS D:\mySite\general_server> python manage.py runserver 0.0.0.0:8000
Watching for file changes with StatReloader
Performing system checks...

PS D:\mySite\general_server> python manage.py runserver 0.0.0.0:8000
Watching for file changes with StatReloader
Performing system checks...

卡住没动静,时好时坏,有时给一行代码注释一下,就卡了
mysql连接正常

由于没任何信息,我不知道怎么来排查问题 出在哪?

这种情况通常是因为Django系统检查卡住了导致的。可以尝试以下方法:

  1. 检查日志:在终端上运行Django时,有时候会输出一些错误信息或堆栈跟踪信息。你可以查看终端输出的日志,看看是否有任何有用的信息,包括错误信息和建议。

  2. 清除Python缓存:有时候,Python缓存可能会导致系统检查过程卡住,导致Django无法正常启动。你可以尝试清除Python缓存,例如,在当前工程根目录中执行以下命令:

    find . -type f -name "*.pyc" -delete
    

    这将删除所有编译的Python文件。

  3. 关闭django-debug-toolbar:django-debug-toolbar是一个常用的Django调试插件,它可以分析系统检查的性能,当某些检查出现一些问题时,它会影响Django的性能和功能。你可以尝试关闭django-debug-toolbar,查看是否有任何帮助。

  4. 升级Django版本:有时候,Django版本问题可能导致系统检查出现问题。你可以尝试升级Django版本,查看是否有任何帮助。

  5. 检查代码:你也可以检查代码,看是否有可能导致系统检查过程卡住。可以逐行注释代码,查看哪一行会导致系统检查卡住。

希望以上方法对你有所帮助,如果依然无法解决问题,建议提供更多的信息和日志以供进一步检查。

可以看看这个试试:解决方法

引用chatgpt 4的回答,
当 Django 运行 manage.py runserver 卡在 "Performing system checks..." 这一步的时候,很可能是由于一些错误或者警告未被捕获或者处理。以下是一些排查问题的步骤:

  1. 启用 Django Debug模式: 打开你的 settings.py 文件,并确保 DEBUG = True。这样,当你的代码有问题时,Django会提供更详细的错误消息。

  2. 运行 check 命令: 使用 python manage.py check 命令来运行 Django 的系统检查框架。这个框架是一个诊断工具,它会检查你的项目中常见的问题,并给出解决建议。

  3. 尝试更新依赖项: 有时候,问题可能是由于 Django 或者其它依赖项版本不兼容造成的。你可以尝试更新 Django 和其它依赖项到最新版本。

  4. 检查数据库连接: 由于你的 Django 项目连接了数据库,也要确保你的数据库连接配置是正确的,且数据库服务器运行正常。

  5. 检查模型和迁移: 检查你的模型定义是否有问题,比如字段类型定义错误、字段名不合法等。同时,检查是否执行了所有的迁移,用 python manage.py makemigrationspython manage.py migrate 命令确认。

  6. 检查中间件和URL路由: 确保你的中间件和 URL 配置是正确的。一个常见的问题是,在某个中间件或者视图里有无限循环或者阻塞的调用。

  7. 逐步排查: 你可以尝试注释掉一部分代码,然后逐步添加回来,以确定是哪一部分的代码导致了问题。

  8. 查看日志: 确保你的项目有一个合适的日志配置,可以查看 Django 的日志输出,了解运行情况。

希望这些步骤可以帮助你定位和解决问题。如果还有其它问题,欢迎继续提问。

确保没有其他进程占用了8000端口:在运行runserver之前,确保没有其他进程正在使用8000端口

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:

在 Django 启动时卡住通常是由于系统检查(System check)失败或者超时导致的。系统检查是 Django 在启动时进行的一项操作,用于检查项目的配置是否正确,例如数据库连接、模型的定义等等。

你可以尝试以下排查方法:

1、 查看控制台输出:在 Django 启动时,如果有任何错误或警告,都会输出到控制台。你可以查看控制台输出,看看有没有相关的错误信息。

2、 增加系统检查的超时时间:系统检查默认的超时时间是 30 秒,在某些情况下可能会超时。你可以尝试增加超时时间,例如:

python manage.py runserver --check-timeout 60

这将把系统检查的超时时间增加到 60 秒。

3、 暂时禁用某些应用的系统检查:如果你确定某些应用的系统检查很慢或者不必要,可以暂时禁用它们的系统检查。例如:

python manage.py runserver --exclude some_app.SomeCheck,some_app.SomeOtherCheck

这将禁用 some_app 应用中的 SomeCheck 和 SomeOtherCheck 系统检查。

4、 清空 Django 缓存:有时候 Django 缓存中的旧数据可能会导致系统检查失败或超时。你可以尝试清空 Django 缓存,例如:

python manage.py clear_cache

5、 检查代码:如果以上方法都无法解决问题,可以考虑检查你的代码是否存在问题,例如是否存在死循环、卡死操作等等。可以尝试注释掉一些代码,逐步排查问题。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

根据您提供的信息,如果在运行 python manage.py runserver 命令时出现卡住没有动静的情况,可以尝试以下排查步骤:

  1. 检查代码中的无限循环:请确保您的代码中没有无限循环或长时间运行的操作,这可能会导致服务器无响应。检查代码中的循环结构、递归调用或者长时间阻塞的操作,并进行必要的优化或修改。
  2. 检查系统资源占用情况:在运行服务器时,同时检查系统的资源占用情况,包括 CPU、内存和磁盘空间。确保系统资源足够,没有达到上限,否则可能导致服务器运行缓慢或无响应。
  3. 查看日志信息:尝试查看相关的日志文件,例如 Django 的日志文件或其他应用程序生成的日志文件。日志可能包含有用的错误信息或警告,可以帮助您确定问题所在。
  4. 检查网络连接:确认网络连接是否正常,尤其是与数据库的连接。确保数据库服务正常运行,并且连接配置正确。
  5. 逐步调试:尝试逐步调试代码,逐行注释或排除一些代码,看是否可以确定问题所在。如果有特定的代码段导致服务器无响应,可以针对该部分进行更详细的排查。
  6. 更新依赖库和框架:确保您使用的 Django 版本和相关依赖库是最新的,有时旧版本的库可能存在一些已知的问题,通过更新可以解决一些兼容性或稳定性问题。

如果以上步骤都没有解决问题,可能需要更多的上下文信息和错误日志来进一步排查。您可以尝试提供更详细的错误信息、代码片段或相关日志,以便更准确地诊断问题所在。

参考gpt:
在你的情况下,如果运行 python manage.py runserver 命令时出现卡住的情况,可能是由于以下几个原因引起的:

  1. 代码错误或死循环:检查你的代码,确保没有导致死循环或无限循环的情况。如果有可能,尝试注释掉最近修改的代码,看看问题是否解决。
  2. 依赖项问题:检查你的项目依赖项是否正确安装,并且与 Django 版本兼容。确保你的项目所需的所有依赖项都已正确安装,并且没有发生版本冲突。
  3. 数据库连接问题:确认你的数据库配置正确,并且数据库服务正在运行。检查数据库日志或错误消息,以查看是否有与数据库连接相关的错误。尝试连接数据库并执行简单的查询,以验证数据库连接是否正常。
  4. 端口占用:确保端口 8000 没有被其他应用程序占用。你可以尝试使用其他端口来运行 Django 服务器,如 python manage.py runserver 0.0.0.0:8080,然后尝试访问 http://localhost:8080。
  5. 资源耗尽:检查系统资源(如内存、CPU)是否耗尽。运行 Django 服务器可能会占用一定的资源,如果资源不足,可能会导致服务器响应变慢或卡住。尝试关闭其他不必要的应用程序或服务,以释放系统资源。

如果 Django 在执行系统检查时卡住了,可能有以下原因:

数据库连接问题:请检查您的数据库连接是否正确。如果您使用的是 SQLite 数据库,请确保数据库文件存在且有足够的权限。

依赖问题:请确保您的项目依赖包已经正确安装,并且版本兼容。您可以通过 pip freeze 命令查看当前项目的依赖列表。

Django 版本问题:请确保您的 Django 版本与您的项目兼容。您可以通过 python -m django --version 命令查看当前 Django 版本。

代码问题:请检查您的代码是否有语法错误或逻辑错误。您可以通过运行 python manage.py check 命令来检查您的代码。

时好时坏,一般都是网络问题导致的. 尤其是涉及到Django查数据库等连接操作.题主如果有连接服务器上的数据库,可以排查这方面的影响.

报错Performing system checks… Watching for file changes with StatReloader问题解决
可以参考下
https://blog.csdn.net/qq_33449790/article/details/105740327

换个端口,把运行的程序都退一下