Skip to main content
 首页 » 编程设计

python之Django 的 manage.py 显示旧命令

2024年09月07日34shangdawei

我正在编写自己的 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 列出已安装的包以确保它全部消失。甚至尝试运行旧命令,如果未安装软件包,这些命令会正确地失败。

这些旧命令从何而来?

请您参考如下方法:

多田。找到了。 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