python - Django 的 manage.py 显示旧命令
问题描述
我正在编写自己的 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
推荐阅读
- javascript - Javascript在点击时跨页面移动图像并在一段时间后将图像重置为原始位置
- ios - 标签栏图像显示在 Xcode 中,但不在应用程序中
- sql - T-SQL 事务 - 这个开始/提交实现是否足够?
- c++ - 为什么这试图调用默认构造函数?
- java - 如何从 azure keyvault 获取证书链
- c# - 在 C# 中使用 SOAP API 的困难
- r - 在几列中的行之间创建特定变化的指标
- php - 带有空白字段的 Paypal 购买详细信息页面
- types - 使用第一类模块时,类型构造函数“...”将逃脱其范围
- apache-kafka - flume-ng 抛出 Kafka 主题必须指定