我是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中的第二行代码。视图中有两个函数(让我们称之为x和y),但我需要进入函数x。
答案 0 :(得分:2)
Python几乎安装在每个环境中,但每个项目所需的软件包往往差异很大。例如。有些项目只适用于Django 1.6版本,而其他项目则适用于Django 1.7版本。
出于这个原因,一些聪明人创造了virtual environments。这是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]
<强> OR 强>
您还错误地使用了PDB。这也会给你导入错误信息。 必须 使用manage.py
运行服务器。这是设置各种Django设置所必需的。
像这样运行:
python -m pdb manage.py runserver
您可以通过following this tutorial在views.py中输入PDB断点。
答案 1 :(得分:1)
您不需要通过pdb启动服务器。您只需在代码中导入pdb并在任何地方设置断点:
import pdb; pdb.set_trace()
当Django到达那一点时,你将被转储到控制台的调试器中。