如果我说出一些奇怪的话,请原谅我的无知,我对Django还很新。
我遇到一个奇怪的问题,当将当前的django文件夹发送到生产服务器时,我在本地的一些管理命令已经消失在服务器中。
我的本地计算机和服务器都使用virtualenv。本地一切都运行良好,所以当我运行这个自定义命令时:
python manage.py surfspots_load_nowcast --settings=opencoast.settings.dev
我得到了预期的输出。
顺便说一下,这是文件夹结构:
这是我在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
一切似乎都在起作用,只是命令根本不起作用,我已经完全阅读了this和this,但我尝试过的任何东西似乎都没有工作
知道我在这里缺少什么吗?
编辑:正如所建议的那样,我也试过这个,这似乎没有产生任何错误:
(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文件以防万一它似乎工作......真的不知道为什么......