将BPython用作Django应用程序的调试器

将BPython用作Django应用程序的调试器,django,python-3.x,bpython,Django,Python 3.x,Bpython,我目前正在开发一个Django应用程序,我喜欢使用pdb来了解我的应用程序处于什么状态以及类似的情况。我想在调试程序中拥有所有令人惊叹的BPython功能。。。像自动完成之类的东西。 这可能吗?谢谢:)在python repl启动文件中放入一些代码,以检测您是否在Django项目中,并执行必要的导入: 将此信息放入~/.bashrc或~/.bash_配置文件 导出PYTHONSTARTUP=~/.pythonrc 创建或编辑您的~/.pythonrc: try: from django.

我目前正在开发一个Django应用程序,我喜欢使用pdb来了解我的应用程序处于什么状态以及类似的情况。我想在调试程序中拥有所有令人惊叹的BPython功能。。。像自动完成之类的东西。

这可能吗?谢谢:)

在python repl启动文件中放入一些代码,以检测您是否在Django项目中,并执行必要的导入:

  • 将此信息放入~/.bashrc或~/.bash_配置文件
    导出PYTHONSTARTUP=~/.pythonrc

  • 创建或编辑您的
    ~/.pythonrc

    try:
        from django.core.management import setup_environ
        import settings
        setup_environ(settings)
        print 'imported django settings'
    except:
        pass
    
    使用此更复杂的代码段导入所有django模块并在项目子目录中工作:


  • 我知道这已经很老了,但我仍然找不到我喜欢的解决方案,最后得到了下面使用django命令的解决方案

    Nick的另一个答案也很有效,但我不喜欢在我的全局
    .pythonrc

    #myapp/management/commands/bshell.py
    从django.core.management.base导入BaseCommand
    从django.apps导入应用程序
    类命令(BaseCommand):
    help=“运行bpython交互式解释器(如果已安装)。”
    需要模型验证=假
    def句柄(自身、*参数、**选项):
    已加载的\u模型=应用程序。获取\u模型()
    模型={}
    对于加载的_模型中的模型:
    模型[模型名称]=模型
    导入bpython
    嵌入(模型)
    
    .venv❯ python manage.py bshell
    >>>洛卡特
    ┌───────────────────────────────────────────────────────────────────────────────────┐
    │ 地点(│
    └───────────────────────────────────────────────────────────────────────────────────┘
    
    我使用ipython,如果它安装在环境中,django shell会自动选择它。我相信对于bpython@dusual根据你的评论,我试过bpython。你是对的。解决这个问题。