部署后自定义管理命令丢失

时间:2015-05-18 20:04:43

标签: python django

如果我说出一些奇怪的话,请原谅我的无知,我对Django还很新。

我遇到一个奇怪的问题,当将当前的django文件夹发送到生产服务器时,我在本地的一些管理命令已经消失在服务器中。

我的本​​地计算机和服务器都使用virtualenv。本地一切都运行良好,所以当我运行这个自定义命令时:

 python manage.py surfspots_load_nowcast --settings=opencoast.settings.dev

我得到了预期的输出。

顺便说一下,这是文件夹结构:

enter image description here

这是我在base.py设置文件中安装的应用程序:

INSTALLED_APPS = (
    # 'django.contrib.admin',
    # 'django.contrib.auth',
    # 'django.contrib.contenttypes',
    # 'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.gis',
    # 'social.apps.django_app.default',
    'django_extensions',
    'opencoast.java',
    # 'opencoast.core',
    'opencoast.scrappers.surfspots_es',
)

这是dev.py的内容,顺便说一句,它也是我在服务器中使用的内容:

from .base import *  # NOQA

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'HOST': 'localhost',
        'NAME': 'db',
        'USER': 'db_user',
        'PASSWORD': 'supersecretpassword'
    }
}


INSTALLED_APPS += (
    'opencoast.tests.integration',
)

这是prod.py的内容:

DEBUG = False

TEMPLATE_DEBUG = False

ALLOWED_HOSTS = [
    # TODO
]

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'HOST': 'localhost',
        'NAME': 'db',
        'USER': 'db_user',
        'PASSWORD': 'supersecretpassword'
    }
}

现在我只需压缩根文件夹的全部内容,将其发送到我的服务器,解压缩,创建virtualenv,db等,但是当我在服务器中激活我的virtualenv并运行命令时,我总是面临这个问题:

(django)root@infra:~/scripts/django# python manage.py surfspots_load_nowcast --settings=opencoast.settings.dev
Unknown command: 'surfspots_load_nowcast'
Type 'manage.py help' for usage.

回顾我的本地应用程序,运行manage.py我在列表底部看到:

[gis]
inspectdb
ogrinspect

[staticfiles]
collectstatic
findstatic
runserver

[surfspots_es]
surfspots_load_nowcast
surfspots_load_spots

在服务器中:

[gis]
inspectdb
ogrinspect

[staticfiles]
collectstatic
findstatic
runserver

我试过了:

manage.py checkout
manage.py validate

一切似乎都没问题,

manage.py migrate
manage.py runserver

一切似乎都在起作用,只是命令根本不起作用,我已经完全阅读了thisthis,但我尝试过的任何东西似乎都没有工作

知道我在这里缺少什么吗?

编辑:正如所建议的那样,我也试过这个,这似乎没有产生任何错误:

(django)root@infra:~/scripts/django# python manage.py shell
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
Type "copyright", "credits" or "license" for more information.

IPython 2.4.1 -- An enhanced Interactive Python. 
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: from django.conf import settings

In [2]: print settings.INSTALLED_APPS
('django.contrib.messages', 'django.contrib.staticfiles',   'django.contrib.gis', 'django_extensions', 'opencoast.java', 'opencoast.core', 'opencoast.scrappers.surspots_es', 'opencoast.tests.integration')

In [3]: import opencoast.scrappers.surfspots_es

In [4]: 

最终编辑:在本地和服务器中查看已安装的应用并注意到它们不同之后,我再次重新压缩该文件夹并发送它,删除.pyc文件以防万一它似乎工作......真的不知道为什么......

0 个答案:

没有答案