我有一个名为“listen_rfid”和“listen_qr”的管理命令的Django项目。他们都出现在
./manage.py help --settings=imagination.idmapper.config.settings_dev
但不会出现在
中django-admin.py help --settings=imagination.idmapper.config.settings_dev
django-admin.py对manage.py的行为可能有什么原因?
我在Ubuntu 12.04上使用Django 1.5.5
答案 0 :(得分:1)
根据文件
django-admin.py是Django用于管理任务的命令行实用程序。本文档概述了它可以做的所有事情。
此外,在每个Django项目中自动创建manage.py。 manage.py是一个围绕django-admin.py的瘦包装器,它在委托给django-admin.py之前为你处理两件事:
1)它将你的项目包放在sys.path上。 2)它设置DJANGO_SETTINGS_MODULE环境变量,使其指向项目的settings.py文件。 3)它调用django.setup()来初始化Django的各种内部。
第1点或第3点可能存在问题。顺便说一句,我总是在django 1.5中使用./manage.py
完全没问题
答案 1 :(得分:0)
终于找到了这个问题的答案!以下是django bug report:
的引用django.core.management.find_management_module()加载自定义命令 通过查找模块的路径和检查文件来获取manage.py 直。当应用程序位于共享共享的程序包中时,此操作会失败 基本名称,但文件不在同一目录中, 例如:
- app 1:company.division.project_a.app1存储在路径包/ company.subdivision.project_a.app1
中- app 2:company.division.project_b.app2存储在路径包/ company.subdivision.project_b.app2
中找不到应用2中的自定义命令。