我目前正在开发一个 Django 应用程序,我喜欢使用 pdb 来了解我的应用程序处于哪个状态以及类似的东西。我想在调试器中拥有 BPython 的所有惊人功能......比如自动完成和类似的东西。
这甚至可能吗?谢谢 :)
问问题
348 次
2 回答
2
我知道这已经很老了,但我仍然找不到我喜欢的解决方案,最终得到了下面使用 django 命令的解决方案。
Nick 的另一个答案也适用,但我不喜欢在我的全局中添加 Django 特定的东西.pythonrc
#myapp/management/commands/bshell.py
from django.core.management.base import BaseCommand
from django.apps import apps
class Command(BaseCommand):
help = "Runs the bpython interactive interpreter if it's installed."
requires_model_validation = False
def handle(self, *args, **options):
loaded_models = apps.get_models()
models = {}
for model in loaded_models:
models[model.__name__] = model
import bpython
bpython.embed(models)
.venv ❯ python manage.py bshell
>>> Locat
┌───────────────────────────────────────────────────────────────────────────────────┐
│ Location( │
└───────────────────────────────────────────────────────────────────────────────────┘
于 2019-11-12T21:11:39.803 回答
1
将一些代码放入您的 python repl 启动文件中以检测您是否在 Django 项目中,并执行必要的导入:
把它放在你的 ~/.bashrc 或 ~/.bash_profile
export PYTHONSTARTUP=~/.pythonrc
创建或编辑您的
~/.pythonrc
:try: from django.core.management import setup_environ import settings setup_environ(settings) print 'imported django settings' except: pass
或者 使用这个更复杂的片段来导入你所有的 django 模块并在项目子目录中工作:https ://gist.github.com/pirate/2659b242bded82c3c58f2458e6885738#file-pythonrc-L56
于 2014-06-26T15:19:19.567 回答