Django 的 manage.py 显示旧命令

Django's manage.py shows old commands

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

我尝试卸载而不是使用 pip uninstall project 升级并使用 pip freeze 列出已安装的软件包以确保它全部消失。甚至尝试 运行 旧命令,如果未安装软件包,这些命令会正确失败。

这些旧命令从何而来?

多田。找到了。长话短说:运行 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