Python Django admin.py未知命令:';收集静态数据';

Python Django admin.py未知命令:';收集静态数据';,python,django,Python,Django,我已从django 1.2.7升级到django 1.5.1 我正在使用python 2.6.6 当我尝试运行python manage.py collectstatic时,我得到 未知命令:“collectstatic” 从my settings.py STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.find

我已从django 1.2.7升级到django 1.5.1
我正在使用python 2.6.6
当我尝试运行
python manage.py collectstatic
时,我得到

未知命令:“collectstatic”

从my settings.py

 STATICFILES_FINDERS = (
     'django.contrib.staticfiles.finders.FileSystemFinder',
     'django.contrib.staticfiles.finders.AppDirectoriesFinder',
     'compressor.finders.CompressorFinder',
)


INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.admin',
    'django.contrib.admindocs',
    'django.contrib.staticfiles',

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "django.core.context_processors.request",
    "django.contrib.messages.context_processors.messages",
    "MYPROJECT.control.context_processors.debug",
    "django.core.context_processors.static",
)
如果我运行
python manage.py help
我会得到

Available subcommands:

[django]
    cleanup
    compilemessages
    createcachetable
    dbshell
    diffsettings
    dumpdata
    flush
    inspectdb
    loaddata
    makemessages
    runfcgi
    runserver
    shell
    sql
    sqlall
    sqlclear
    sqlcustom
    sqlflush
    sqlindexes
    sqlinitialdata
    sqlsequencereset
    startapp
    startproject
    syncdb
    test
    testserver
    validate
如果我运行
python manage.py版本

1.5.1


可能是由于“模板\u上下文\u处理器”造成的。官方文件说:

重写设置时要小心,尤其是当默认值为非空元组或字典时,例如中间件类和模板上下文处理器。请确保保留您希望使用的Django功能所需的组件

我检查了默认值,似乎您遗漏了一个选项:

"django.core.context_processors.tz"
整个默认值列表如下所示:

> ("django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.tz",
"django.contrib.messages.context_processors.messages")

在django项目的设置文件中,我没有找到这个值。所以我想也许你不需要覆盖这个值

我最近遇到了这个问题

首先,在你的问题中,
已安装的应用程序
缺少一个结束括号。。。所以检查一下,这不是问题所在

对我来说,缺少管理命令是因为
MEDIA\u URL
设置缺少尾部斜杠。出于某种原因,这导致在使用
/manage.py--help


我发现这一点的方法是运行一个base命令,它通知我我的
settings.py
文件有问题。

我有一个类似的错误消息,但尽管我怀疑,它与Django更新无关。如果设置中有错误(我的密钥值为空),那么“django”将是唯一加载的应用程序。我通过运行
python manage.py shell
找到了问题的根源,这很快就告诉了我设置有什么问题。

如果您更改settings.py文件的名称或目的地,您需要使用key--settings来调用manage.py。

为已安装的应用程序添加一个结束括号,并将
媒体URL='/MEDIA'
更改为
MEDIA\u URL='/MEDIA/'
看看它是否有效

我在Django 1.10.3中遇到了同样的问题。在我的例子中,我忘记在我的settings.py中注册一个应用程序。在已安装的应用程序中添加应用程序的名称可以解决此问题。

当缺少环境变量
DJANGO\u SETTINGS\u MODULE
时,可能会发生这种情况


运行export DJANGO\u SETTINGS\u MODULE=,看看它是否解决了问题。

对于来自谷歌的人,我通过添加

'django.contrib.staticfiles',

已安装的应用程序

请确保
'django.contrib.staticfiles'
位于
已安装的应用程序
中,这很可能是由于
设置.py
文件中的配置造成的 您可以运行perform-Django来找出确切的问题

python manage.py check --settings=test_settings

您还可以指定要检查的
设置
文件。

我在Django 2.2.7中遇到了同样的问题,并在此处找到了该命令:

(venv) lead@ip-XXX-XX-XX-XXX:~/Develop/dev_1_2/myproject$ python manage.py help

Type 'manage.py help <subcommand>' for help on a specific subcommand.

Available subcommands:

...

[django]
    check
    compilemessages
...
    startapp
    startproject
    test
    testserver

[sessions]
    clearsessions

[staticfiles]
    collectstatic
    findstatic
    runserver

是否加载了正确的设置文件?如果我输入了错误的代码,请参见是。我得到了一个例外。您可以在
TEMPLATE\u CONTEXT\u PROCESSORS
下发布您的内容吗?我已经添加了
TEMPLATE\u CONTEXT\u PROCESSORS
确定。尝试使用django-admin.py启动一个新项目,并将setting.py文件复制到当前项目中。如果这仍然不起作用,您可能需要打开一个新项目。我想知道我们是否可以将此作为改进请求提交给Django核心团队(以便更清楚地说明问题所在)。在构建docker容器时,遇到了试图运行collectstatic的相同问题,SECRET_密钥由环境变量设置,该变量在部署之前不可用。仍在研究解决方案。。。
python manage.py collectstatic