Python运行测试查询最佳方式:bash与Django默认shell的区别及用法
问题本质说明
你遇到的报错是环境类型错配导致的:
bash是Linux系统的命令行外壳,只能识别shell语法,不支持Python代码的执行,你直接在bash里输入Python的导入语句自然会抛出命令不存在的错误,和你在本地未进入Python环境时直接写Python代码报错逻辑完全一致。python manage.py shell启动的是加载了Django项目环境的Python交互解释器(如果安装了IPython会默认使用IPython),专门用来执行Python代码和Django相关操作。
正确操作方法
有两种方式可以在Docker环境中使用你熟悉的Django shell:
- 先进入容器bash再启动Django shell
执行docker-compose exec myapp bash进入容器后,再运行你本地常用的命令即可:
python3 manage.py shell
进入后就可以正常执行ORM查询等Python代码,和本地操作完全一致。
2. 直接一行命令进入Django shell(更便捷)
不需要先进入bash,直接执行如下命令就能打开Django交互环境:
sudo docker-compose exec myapp python3 manage.py shell
如果容器内Python可执行命令为python而非python3,替换对应命令即可。
内容的提问来源于stack exchange,提问作者user8758206
相关产品推荐
相关产品推荐

