Python Django';s manage.py显示旧命令
我正在编写自己的whl包,在创建了一些新的管理命令并删除了一些旧命令之后,我对自己感到非常满意。除了构建我的控制盘包(使用Python Django';s manage.py显示旧命令,python,django,setup.py,django-manage.py,manage.py,Python,Django,Setup.py,Django Manage.py,Manage.py,我正在编写自己的whl包,在创建了一些新的管理命令并删除了一些旧命令之后,我对自己感到非常满意。除了构建我的控制盘包(使用setup.py bdist\U wheel)并将其安装到测试服务器上(使用pip install-U project-2.0b3-py2.py3 none any.whl),我注意到manage.py的帮助仍然显示旧的命令。它甚至会尝试运行旧的命令,所以那里有一些旧的东西,但我不太清楚为什么或者如何 我尝试用pip uninstall project卸载而不是升级,并用pi
setup.py bdist\U wheel
)并将其安装到测试服务器上(使用pip install-U project-2.0b3-py2.py3 none any.whl
),我注意到manage.py
的帮助仍然显示旧的命令。它甚至会尝试运行旧的命令,所以那里有一些旧的东西,但我不太清楚为什么或者如何
我尝试用pip uninstall project
卸载而不是升级,并用pip freeze
列出已安装的软件包,以确保它们都消失了。甚至尝试运行旧的命令,当包未安装时,这些命令会正确地失败
这些旧命令来自哪里?Tada。找到了。TL;DR:run
setup.py clean——所有bdist\U轮子
。
因此,当卸载软件包后命令消失时,它一定是软件包中的某个东西。我这样做证实了这一点
> 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——所有的都会。方便地,它可以组合成
setup.py clean --all bdist_wheel
你说得对,我忘记了--all
选项:python setup.py clean--all-bdist\u-wheel
。我在项目模板的setup conf中有all=1
,因此经常忘记在命令中包含它。