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

2024-09-29 19:28:29 发布

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

请原谅我的无知,如果我说些奇怪的话,我对Django还很陌生。你知道吗

我遇到了一个奇怪的问题,当将当前的django文件夹发送到生产服务器时,我在local中拥有的一些管理命令都不在服务器中了。你知道吗

在我的本地机器和服务器上都使用virtualenv。在本地,一切正常,因此当我运行此自定义命令时:

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

我得到了预期的结果。你知道吗

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

enter image description here

这是我在中安装的应用程序基本.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',
)

这是本书的内容开发人员,顺便说一句,这也是我在服务器中使用的:

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',
)

这是本书的内容产品类型地址:

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.

回顾我的本地应用程序,运行管理.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文件以防万一,现在它似乎可以工作了…还不知道为什么。。。你知道吗


Tags: djangopy命令服务器文件夹dbsettingsmanage

热门问题