如何使用 pycharm 调试/断点我的 django 应用程序?

Posted

技术标签:

【中文标题】如何使用 pycharm 调试/断点我的 django 应用程序?【英文标题】:how do i debug/breakpoint my django app using pycharm? 【发布时间】:2012-06-30 13:18:32 【问题描述】:

我正在尝试解决如何运行 pycharm 似乎提供的调试功能(好吧,无论如何,它允许我设置断点,所以我假设它有一个不错的 gui)

我得出的结论是我不能使用 ctrl-shift-r 然后“runserver”命令,而是需要设置“运行配置”?我做了一个“django 服务器”,但我不知道要放什么值等等。当我运行它时,它告诉我某些设置是错误的 - 我很确定它不是,因为标准的“runserver " 命令运行良好。

这就是我得出的结论。如果有一个漂亮的教程或步骤来获得它,那么我可以

    设置断点 转到触发该断点的页面并按照代码在 pycharm 中的内部工作

我会很激动的!

干杯!

更新:如果您想知道,这是我得到的错误:

Traceback(最近一次调用最后一次):

文件“manage.py”,第 11 行,在 导入设置

文件“C:\development\PycharmProjects\dumpstown\settings.py”,第 185 行,在 add_to_builtins('gravatar.templatetags.gravatar')

文件“C:\development\python\lib\site-packages\django\template\base.py”,第 1017 行,在 add_to_builtins 中

builtins.append(import_library(module))

文件“C:\development\python\lib\site-packages\django\template\base.py”,第 963 行,在 import_library 中

raise InvalidTemplateLibrary("ImportError raise loading loading %s: %s" % (taglib_module, e))

django.template.base.InvalidTemplateLibrary: ImportError raise loading loading gravatar.templatetags.gravatar: 无法导入设置,因为环境变量 DJANGO_SETTINGS_MODULE 未定义。

应用程序本身在“运行服务器”上从来没有任何问题。

更新:根据我在下面的回答,pycharm 对于 add_to_builtins 已损坏。

【问题讨论】:

【参考方案1】:

问题是应该指向项目设置文件的DJANGO_SETTINGS_MODULE 变量没有在任何地方设置,因为据报告该变量未定义。

您可以参考的解决方案和解释可以在previous post中找到

【讨论】:

【参考方案2】:

    设置您的虚拟环境

      在 PyCharm 中创建或打开您的项目 转到菜单中的文件 - 设置(或直接点击设置图标) 转到 Python 解释器 点击顶部的添加 转到您创建虚拟环境的 bin 文件夹并选择 python

    设置断点

      在要设置断点的代码行旁边。左边通常有一条灰线。通常在行号旁边。只需点击那里,就会出现一个大红点。 Looks like this

    点击在调试模式下运行按钮。

      在绿色播放按钮旁边有一个带有错误的按钮。使用它以调试模式启动运行服务器。现在,当您使用您的 Web 应用程序并且代码到达断点时,它将停在那里,您将能够单步执行或在 pycharm 中继续执行。

      如果您仍然无法调试,您可能需要编辑 pycharm 项目配置。你可以做that like this.

你也可以看看http://garmoncheg.blogspot.it/2012/01/establishing-dev-environment-with.html

【讨论】:

【参考方案3】:

所以我在这里给所有的答案一个 +1 的尝试 - 但他们不是问题。据我所知,答案是 pycharm 坏了。这很痛苦,但解决方案很简单 -

如果你不'想使用 pycharm 顶部的绿色小按钮,或者使用 pycharm 调试功能?那么别担心,你不需要做任何事情。继续使用 ctrl-shift-r 和 runserver(或任何你的 manage.py 快捷方式)

如果你确实想使用绿色的小“运行”按钮,或者如果你想使用 pycharm 的调试工具包,那么你绝对不能使用“add_to_builtins” ,至少在 settings.py 文件中(我自己从来没有把它放在其他任何地方,pycharm 可能在其他地方需要它?)。 add_to_builtins 在 pycharm 中不起作用 - 当您使用绿色小按钮或调试按钮时,它会陷入严重后果的循环中。奇怪的是,使用 ctrl-shift-r 和 runserver 没有这个问题。

好消息是“add_to_builtins”不是必须具备的,只是一个不错的选择。只需将“% load x %”命令添加到您使用 x 的每个模板,您就会被设置。 或者,节省一百美元并使用某种免费的 eclipse 工具。

【讨论】:

【参考方案4】:

问题与 DJANGO_SETTINGS_MODULE 无关。 Pycharm 在创建项目时设置它。而是转到绿色的小“播放按钮”以运行脚本。您想将其配置为运行 manage.py,即您将播放按钮配置为运行命令python manage.py runserver。 细分:

python------>用python解释器运行

manage.py-------->运行这个脚本

runserver---------> 参数

所以转到绿色播放按钮左侧的下拉菜单

,

点击编辑配置。你会得到一个像这样的屏幕

.

如图所示填写它,找到您的 manage.py 源脚本。确保在参数框中包含 runserver。现在您可以单击绿色的 debug 按钮,您的程序将在遇到的第一个断点处停止,允许您在完全调试模式下查看变量和所有内容。现在您可以在终端上手动键入 python manage.py runserver 或使用 newley 配置的运行按钮。

【讨论】:

谢谢一帮朋友。 很高兴答案对您有所帮助@seekme_94 谢谢,但对我来说,我需要添加额外的环境变量 DJANGO_SETTINGS_MODULE =.settings,但是它仍然没有挂起并弹出调试窗口,因为它需要重新启动 Pycharm! @Raymond 命令是 python manage.py -- settings .settings runserver。因此,在上面的环境变量屏幕截图中,当前存在 PYTHONUNBUFFERED=1 添加 DJANGO_SETTINGS_MODULE=.settings 以便当您单击运行或调试时,您的项目将获得您想要的设置。最后它必须显示为 PYTHONUNBUFFERED=1;DJANGO_SETTINGS_MODULE=.settings

以上是关于如何使用 pycharm 调试/断点我的 django 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 调试器(PyCharm)中执行 n 步(迭代)?

如何在 Python 调试器(PyCharm)中执行 n 步(迭代)?

如何在PyCharm中调试程序

如何使用 PYCHARM 社区版调试 Django 应用程序

Pycharm CE 没有在我的 Django 项目中遇到断点

Django 断点不起作用 PyCharm