【问题标题】:Unknown command: 'collectstatic' Django 1.7未知命令:'collectstatic' Django 1.7
【发布时间】:2013-10-13 04:01:27
【问题描述】:

我想做静态文件。我使用 Django 1.7 和 Python 2.7.5 以及 openshift 托管。当我尝试运行时:

python manage.py collectstatic

我明白了:

Unknown command: 'collectstatic' Type 'manage.py help' for usage.

在我的 settings.py 中:

... 
INSTALLED_APPS = (
   'django.contrib.staticfiles',

   'django.contrib.admin',

   'django.contrib.auth',

   'django.contrib.contenttypes',

   'django.contrib.sessions',

   'django.contrib.messages',

   'testapp',

)

TEMPLATE_CONTEXT_PROCESSORS = (
   'django.core.context_processors.static',

)
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': os.environ['OPENSHIFT_APP_NAME'],
        'USER': os.environ['OPENSHIFT_MYSQL_DB_USERNAME'], 
        'PASSWORD': os.environ['OPENSHIFT_MYSQL_DB_PASSWORD'],
        'HOST': os.environ['OPENSHIFT_MYSQL_DB_HOST'],
        'PORT': os.environ['OPENSHIFT_MYSQL_DB_PORT'],
    }
}
STATIC_ROOT = ''    
STATIC_URL = '/static/'
...

很多人都有这个问题。他们在 INSTALLED_APPS 中忘记了“django.contrib.staticfiles”。但是我有这个设置。

好的,我运行帮助:

Options:
 -v VERBOSITY, --verbosity=VERBOSITY
                       Verbosity level; 0=minimal output, 1=normal output,
                       2=verbose output, 3=very verbose output
 --settings=SETTINGS   The Python path to a settings module, e.g.
                       "myproject.settings.main". If this isn't provided, the
                       DJANGO_SETTINGS_MODULE environment variable will be
                       used.
 --pythonpath=PYTHONPATH
                       A directory to add to the Python path, e.g.
                       "/home/djangoprojects/myproject".
 --traceback           Raise on exception
 --no-color            Don't colorize the command output.
 --version             show program's version number and exit
 -h, --help            show this help message and exit

 Traceback (most recent call last):
 ...
 File "c:\Python27\lib\os.py", line 423, in __getitem__
   return self.data[key.upper()]
 KeyError: 'OPENSHIFT_APP_NAME'

OPENSHIFT_APP_NAME - 环境变量(链接:https://www.openshift.com/page/openshift-environment-variables) 你能帮帮我吗?

【问题讨论】:

    标签: python django openshift


    【解决方案1】:

    似乎找不到环境变量OPENSHIFT_APP_NAME。您应该尝试设置它,看看是否可以解决问题。 Django 无法导入您的设置,因为它找不到该环境变量。

    这些环境变量看起来像是由 openshift 设置的。您可能在尚未设置它们的 shell 中运行该 collectstatic 命令。你要么需要在 shell 中设置它们,要么编辑你的 settings.py 以便能够处理这种情况。这样的事情会起作用:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': os.environ.get('OPENSHIFT_APP_NAME', 'A sensible default'),
    

    【讨论】:

    • 谢谢!我都做了 - NAME、USER 等。但我收到错误:ImportError: Could not import settings 'testapi.settings.INSTALLED_APPS'(它在 sys.path 上吗?设置文件中是否有导入错误?):否名为 INSTALLED_APPS 的模块
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    • 2013-05-05
    • 2016-07-04
    • 2015-04-11
    相关资源
    最近更新 更多