我不明白为什么这找不到命令:
khandelwal@simba:/opt/code/cdcschool$ python schoolcommand/manage.py createcampaign
Unknown command: 'createcampaign'
Type 'manage.py help' for usage.
当这工作正常时:
khandelwal@simba:/opt/code/cdcschool$ cd schoolcommand/
khandelwal@simba:/opt/code/cdcschool/schoolcommand$ python manage.py createcampaign
Error: Provide: <type start_date end_date>
这是我的命令所在:
$ ls schoolcommand/management/
commands __init__.py __init__.pyc
$ ls schoolcommand/management/commands/
campaignmanager.py createcampaign.py __init__.py
campaignmanager.pyc createcampaign.pyc __init__.pyc
如何修复它以便我可以:
khandelwal@simba:/opt/code/cdcschool$ python schoolcommand/manage.py createcampaign
以下是我的PYTHONPATH,DJANGO_SETTINGS_MODULE的值以及我的settings.py所在的位置。
khandelwal@simba:/opt/code/cdcschool$ ls
Procfile README requirements.txt schoolcommand
khandelwal@simba:/opt/code/cdcschool$ echo $PYTHONPATH
khandelwal@simba:/opt/code/cdcschool$ echo $DJANGO_SETTINGS_MODULE
khandelwal@simba:/opt/code/cdcschool$ find . -name settings.py
./schoolcommand/settings.py
khandelwal@simba:/opt/code/cdcschool$
答案 0 :(得分:5)
当您使用Django时,有两个重要规则。
首先
您有一个settings.py
文件,网络服务器必须,全部 manage.py命令。所有这些。
查找settings.py
文件的默认位置是当前工作目录。您可以使用PYTHONPATH
和DJANGO_SETTINGS_MODULE
环境变量更改此内容。
manage.py
是在与settings.py
。
如果您不想使用django-admin.py --settings=some.module
,则可以使用manage.py
。
第二
manage.py
命令没有任何“路径”。它们都只是一个单词的命令,无论它们碰巧存在于你的应用程序树中。
您从不执行此操作:python schoolcommand/manage.py createcampaign
除非(某种程度上)您的settings.py
与您的manage.py
不在同一目录中。
您通常执行此操作:
cd /path/to/your/settings
python manage.py createcampaign
如果您的设置位于code/schoolcommand
,则表示您的网站和所有命令都将在该目录中运行。