Django的manage.py显示旧命令

时间:2018-08-22 12:57:35

标签: python django setup.py django-manage.py manage.py

我正在编写自己的whl程序包,在创建了一些新的管理命令并删除了一些旧的命令后,我对自己感到非常满意。除了构建了轮包(使用setup.py bdist_wheel)并将其安装在测试服务器上(使用pip install -U project-2.0b3-py2.py3-none-any.whl)之后,我注意到manage.py的帮助仍然显示了旧命令。它甚至会尝试运行旧的命令,因此那里有一些旧的东西,但是我不太确定为什么或如何。

我尝试卸载而不是使用pip uninstall project进行升级,并尝试使用pip freeze列出已安装的软件包,以确保一切都消失了。甚至尝试运行旧命令,如果未安装该软件包,它们将正确失败。

这些旧命令从哪里来?

1 个答案:

答案 0 :(得分:2)

多田。找到了。 TL; DR:运行setup.py clean --all bdist_wheel


因此,卸载软件包后命令消失了,它一定是软件包中的东西。我通过

确认
> strings project-2.0b3-py2.py3-none-any.whl | grep old_command

确实找到了我的旧命令的痕迹。因此它们从某处内置到我的程序包中。我移到开发箱并运行

> find . -iname *old_command*
./build/lib/project/management/commands/old_command.py

虽然我已经从项目中删除了该文件,但显然该文件仍位于build目录中。简单的清理不会摆脱它,但是clean --all会消除它。方便地,它可以组合为

setup.py clean --all bdist_wheel