django代码中的pdb错误

pdb error in django code

我是 django 环境的新手。我需要调试继承的项目。我需要调试的函数在views.py中。我们称它为函数 x。我的环境是redhat、apache、django。我如何使用 pdb 调试它。我尝试查看教程,但似乎无济于事。

这就是我在我的 redhat 命令行上运行

python -m pdb /opt/django/projectx/views.py runserver 

当我点击 "c" 继续时,我看到

ImportError: No module named django.http

这是views.py中的第二行代码。视图中有 2 个函数(我们称它们为 x 和 y),但我需要访问函数 x。

Python 几乎安装在每个环境中,但每个项目所需的包往往差异很大。例如。一些项目仅适用于 Django 1.6 版,而其他项目则专为 Django 1.7 版设计。

为此,一些聪明人创造了 virtual environments. And this is the helpful tutorial done on Red Hat

您的项目很可能是在这样的虚拟环境中 运行。 Python 无法导入 django.http 的事实表明您的默认环境甚至没有安装 Django。

开发人员将环境文件夹放在不同的地方。您以前的开发人员可能已将其放在项目文件夹中,或其他存储其他虚拟环境的地方。

查找结构类似于 [name_for_env]/bin/activate.

的文件夹名称

您可以通过以下方式激活它: source [name_for_env]/bin/activate

然后停用: deactivate

当你在虚拟环境中时,你可以安装缺少的包:

pip install [name_of_package]

你也用错了PDB。这也会给你导入错误信息。您必须 运行 manage.py 的服务器。这是设置各种 Django 设置所必需的。 运行 是这样的:

python -m pdb manage.py runserver

您可以通过 following this tutorial 在 views.py 中输入 PDB 断点。

您不需要通过 pdb 启动您的服务器。您可以简单地在代码中导入 pdb 并在任意位置设置断点:

import pdb; pdb.set_trace()

只要 Django 到达那个点,您就会被转储到控制台的调试器中。