我正在编写自己的whl包,在创建了一些新的管理命令并删除了一些旧的命令后,我对自己非常满意。除了构建我的轮包(使用 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
关于python - Django的manage.py显示旧命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51967441/