如果不直接看到您的调用方式,我无法知道,但我的猜测是脚本没有在 virtualenv 中运行。以下是一些调试说明:
./manage.py --help | grep reset_db
: 这有什么输出吗?
./manage.py shell_plus
然后尝试:
from django.core.management import call_command
call_command('reset_db', '--help')
那有什么吗?
也在里面./manage.py shell_plus
,试试import django_extensions
在外壳之外,试试这个:pip show django
, pip django-extensions
.
如果它没有显示那些(例如WARNING: Package(s) not found: django-extension
)并且您认为它们已经安装,请尝试以下操作:
which python
, which pip
. 你在用venv
, virtualenv
, virtualenvwrapper,
pipenvor
诗歌吗?
试试看env | grep VIRT
,你看到了VIRTUAL_ENV
吗?如果没有,您可能需要制作一个。
运行脚本时,您需要设置环境变量,以便连接到您的站点包。在poetry
我们可以做poetry run ./manage.py ourscript
或poetry run ./ourscript.py
不需要采购。但是我们也可以很容易地通过poetry shell
.
如果您创建了类似的环境virtualenv -ppython3.8 .venv
,您可以执行以下操作:
source .venv/bin/activate
, ./myscript.py
, rr 你可以试试.venv/bin/python ./myscript.py