运行Django自定义管理命令-路径问题

2024-09-27 07:30:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我不明白为什么这里找不到命令:

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_模块的值,其中有一个位置my 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$

Tags: py命令datesettingsmanageinitcodels
1条回答
网友
1楼 · 发布于 2024-09-27 07:30:23

使用Django时,有两个重要的规则。

首先。

您有一个settings.py文件,该文件必须由web服务器使用,并且所有的manage.py命令都必须使用。所有人。

查找settings.py文件的默认位置是当前工作目录。您可以使用PYTHONPATHDJANGO_SETTINGS_MODULE环境变量来更改它。

manage.py是在与settings.py相同的目录中为您创建的。

如果不想使用manage.py,可以使用django-admin.py --settings=some.module

第二。

manage.py命令没有指向它们的任何“路径”。它们都只是一个单词的命令,不管它们在应用程序树中的位置如何。

除非(不知何故)您的settings.py与您的manage.py不在同一目录中,否则您永远不会这样做。

您通常要执行以下操作:

cd /path/to/your/settings
python manage.py createcampaign

如果您的设置在code/schoolcommand中,则表示您的网站和所有命令都将在该目录中运行。

相关问题 更多 >

    热门问题