我目前正在开发一个Django应用程序,我喜欢使用pdb来了解我的应用程序和某些类似的东西。我想在debuger中拥有BPython的所有惊人功能...就像自动完成和类似的事情。
这甚至可能吗?谢谢:))
答案 0 :(得分: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
答案 1 :(得分:1)
我知道这已经很老了,但是我仍然找不到我喜欢的解决方案,最后得到了下面的解决方案,其中使用了django命令。
Nick的另一个回答也同样有效,但是我不喜欢在全局.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( │
└───────────────────────────────────────────────────────────────────────────────────┘