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

标签 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 列出已安装的软件包以确保一切都消失了。甚至尝试运行旧命令,当未安装软件包时,这些命令会正确失败。

这些旧命令从哪里来?

最佳答案

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

相关文章:

Python - [Errno 13] 权限被拒绝

python - 如何正确获取console_scripts install_scripts目录?

mysql - 保存并继续重定向到 None 而不是主键的 id 后,Django 管理崩溃。帮助?

django-allauth:从 View 中访问 "socialaccount_set.all"

python - 通过单个 python 文件安装多个 python 包

python - 为什么python setup.py安装的模块找不到安装的资源?

python - 如何用抽象模型定义外键关系?

python - 无法安装reportlab mac OS X 10.9.2 + python2.7

python - 将元组列表转换为简单的平面列表

python - 在 Django 中,如何获取异常消息?