在Windows上使用django mongodb引擎在django中设置MongoDB时出错 [英] Error while setting up MongoDB with django using django mongodb engine on windows

查看:447
本文介绍了在Windows上使用django mongodb引擎在django中设置MongoDB时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我遵循的步骤:


  1. 'pip install git + htp://github.com/django-nonrel/django@nonrel- 1.5'

它没有工作,所以我从站点htp://github.com/django-nonrel / django,并将解压缩的文件夹粘贴到c:\users\hp\appdata\local\temp\pip-m0d0y9bv-build内。


  1. 'pip install git + htp://github.com/django-nonrel/djangotoolbox'

  2. 'pip install git + htp: //github.com/django-nonrel/mongodb-engine'

注意



***我使用'htp'而不是'https',因为我的声誉小于10。


  1. 配置我的settings.py文件如下: -



  import os 

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__ file__)))

SECRET_KEY ='4j * aieq $ cn& sewl0s2#& m0 0 + ^ oe%qg9p = @ mlva96_r48nv-pkl'

DEBUG = True

ALLOWED_HOSTS = []


INSTALLED_APPS =
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
'djangotoolbox',


MIDDLEWARE_CLASSES =(
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',


ROOT_URLCONF ='myproject.urls'

TEMPLATES = [
{
'BACKEND':'django.template.backends.django.DjangoTemplates' ,
'DIRS':[],
'APP_DIRS':True,
'OPTIONS':{
'context_processors':[
'django.template.context_processors .debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages'
],
},
},
]

WSGI_APPLICATION ='myproject.wsgi.application'



DATABASES = {
'default':{
'ENGINE':'django_mongodb_engine',
'NAME':'test',
'USER' '',
'PASSWORD':'',
'HOST':'localhost',
'P ORT':27017,


}
}

SESSION_ENGINE ='mongoengine.django.sessions'
SESSION_SERIALIZER ='mongoengine.django sessions.BSONSerializer'


LANGUAGE_CODE ='en-us'

TIME_ZONE ='UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

STATIC_URL ='/ static /'


  1. 当我使用命令'python manage.py runserver'开始运行服务器时,出现以下错误

  c:\Python34\myproject> python manage.py runserver 
追溯(最近的呼叫最后):
文件manage.py,第10行,在< module>
execute_from_command_line(sys.argv)
文件C:\Python34\lib\site- packages\django\core\management\__init __。py,行
338,in execute_from_command_line
utility.execute()
文件C:\Python34\lib\site- packages\django\core\management\__init __。py,行
312,执行
django.setup()
文件C:\Python34\lib\site-packages\django\__init __。py,第18行,在设置
apps.populate(settings.INSTALLED_APPS)
文件C:\Python34\lib\site-packages\django\apps\registry.py,第108行,弹出
ulate
app_config.import_models(all_models)
文件C:\Python34\lib\site-packages\django\apps\config.py,第198行impor
t_models
self.models_module = import_module(models_module_name)
文件C:\Python34\lib\importlib\__init __。py,第109行, in import_module
return _bootstrap._gcd_import(name [level:],package,level)
文件< frozen importlib._bootstrap>,第2254行,_gcd_import
文件< freeze importlib._bootstrap>,第2237行,_find_and_load
文件< frozen importlib._bootstrap>,第2226行,_find_and_load_unlocked
文件< frozen importlib._bootstrap,第1200行_load_unlocked
文件< frozen importlib._bootstrap>,第1129行,_exec
文件< frozen importlib._bootstrap>,第1471行,exec_module
文件< freeze importlib._bootstrap>,第321行,在_call_with_frames_removed
文件C:\Python34\lib\site- packages\django\contrib\auth\models.py,第41行,i
n< module>
class权限(models.Model):
文件C:\Python34\lib\site-packages\django\db\models\base.py,第139行,在__
new__
new_class.add_to_class('_ meta',Options(meta,** kwargs))
文件C:\Python34\lib\site-packages\django \db\models\base.py,第324行,在ad
d_to_class
value.contribute_to_class(cls,name)
文件C:\Python34\lib\\ \\ site-packages\django\db\models\options.py,第250行,
contribution_to_class
self.db_table = truncate_name(self.db_table,connection.ops.max_name_length(
))
文件C:\Python34\lib\site- packages\django\db\__init __。py,第36行,__geta
ttr__
return getattr(connections [DEFAULT_DB_ALIAS],item)
文件C:\Python34\lib\site-packages\django\db\utils.py,第240行,__getite
m__
backend = l oad_backend(db ['ENGINE'])
文件C:\Python34\lib\site-packages\django\db\utils.py,第111行,load_bac
kend
return import_module('%s.base'%backend_name)
文件C:\Python34\lib\importlib\__init __。py,第109行,import_module
返回_bootstrap._gcd_import(name [level:],package,level)
文件< frozen importlib._bootstrap>,第2254行,在_gcd_import
文件< frozen importlib._bootstrap第2237行,_find_and_load
文件< frozen importlib._bootstrap>,第2226行,_find_and_load_unlocked
文件< frozen importlib._bootstrap>,第1200行,_load_unlocked
文件< frozen importlib._bootstrap>,第1129行,在_exec
文件< frozen importlib._bootstrap>,行1467,在exec_module
文件< frozen importlib._bootstrap第1572行,get_code
文件< frozen importlib._bootstrap>,第1532行urc_to_code
文件< frozen importlib._bootstrap>,第321行,在_call_with_frames_removed
文件C:\Python34\lib\site-packages\django_mongodb_engine\base.py中,行272
raise不正确配置,exc_info [1],exc_info [2]
^
语法错误:无效语法

我在这里缺少什么?我已经遵循django - mongoengine文档中的步骤。但是,我无法弄清这个问题。请帮我解决这个问题。

解决方案

Django-mongodb-engine似乎与Python 3不兼容。在任何情况下,django-nonrel本身都是基于在Django 1.5上,这绝对不是Python 3兼容的。


Steps I followed :

  1. 'pip install git+htp://github.com/django-nonrel/django@nonrel-1.5'

It did not work, so I downloaded the zip from the site "htp://github.com/django-nonrel/django" and pasted the unzipped folder inside "c:\users\hp\appdata\local\temp\pip-m0d0y9bv-build".

  1. 'pip install git+htp://github.com/django-nonrel/djangotoolbox'
  2. 'pip install git+htp://github.com/django-nonrel/mongodb-engine'

NOTE

*** I have used 'htp' instead of 'https' as I have reputation less than 10.

  1. configured my settings.py file as follows:-

.

import os       

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))         

SECRET_KEY = '4j*aieq$cn&sewl0s2#&m00+^oe%qg9p=@mlva96_r48nv-pkl'

DEBUG = True

ALLOWED_HOSTS = []


INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',
    'djangotoolbox',
)

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.security.SecurityMiddleware',
)

ROOT_URLCONF = 'myproject.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'myproject.wsgi.application'



DATABASES = {
    'default': {
        'ENGINE': 'django_mongodb_engine',
        'NAME': 'test',
        'USER': '',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': 27017,


    }
}

SESSION_ENGINE = 'mongoengine.django.sessions'
SESSION_SERIALIZER = 'mongoengine.django.sessions.BSONSerializer'


LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

STATIC_URL = '/static/'

  1. I got the below error when i started running server using command 'python manage.py runserver'

.

c:\Python34\myproject>python manage.py runserver
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Python34\lib\site-packages\django\core\management\__init__.py", line
338, in execute_from_command_line
    utility.execute()
  File "C:\Python34\lib\site-packages\django\core\management\__init__.py", line
312, in execute
    django.setup()
  File "C:\Python34\lib\site-packages\django\__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\Python34\lib\site-packages\django\apps\registry.py", line 108, in pop
ulate
    app_config.import_models(all_models)
  File "C:\Python34\lib\site-packages\django\apps\config.py", line 198, in impor
t_models
    self.models_module = import_module(models_module_name)
  File "C:\Python34\lib\importlib\__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1129, in _exec
  File "<frozen importlib._bootstrap>", line 1471, in exec_module
  File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
  File "C:\Python34\lib\site-packages\django\contrib\auth\models.py", line 41, i
n <module>
    class Permission(models.Model):
  File "C:\Python34\lib\site-packages\django\db\models\base.py", line 139, in __
new__
    new_class.add_to_class('_meta', Options(meta, **kwargs))
  File "C:\Python34\lib\site-packages\django\db\models\base.py", line 324, in ad
d_to_class
    value.contribute_to_class(cls, name)
  File "C:\Python34\lib\site-packages\django\db\models\options.py", line 250, in
 contribute_to_class
    self.db_table = truncate_name(self.db_table, connection.ops.max_name_length(
))
  File "C:\Python34\lib\site-packages\django\db\__init__.py", line 36, in __geta
ttr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "C:\Python34\lib\site-packages\django\db\utils.py", line 240, in __getite
m__
    backend = load_backend(db['ENGINE'])
  File "C:\Python34\lib\site-packages\django\db\utils.py", line 111, in load_bac
kend
    return import_module('%s.base' % backend_name)
  File "C:\Python34\lib\importlib\__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1129, in _exec
  File "<frozen importlib._bootstrap>", line 1467, in exec_module
  File "<frozen importlib._bootstrap>", line 1572, in get_code
  File "<frozen importlib._bootstrap>", line 1532, in source_to_code
  File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
  File "C:\Python34\lib\site-packages\django_mongodb_engine\base.py", line 272
    raise ImproperlyConfigured, exc_info[1], exc_info[2]
                              ^
SyntaxError: invalid syntax

What am I missing here ? I have followed the steps from django - mongoengine documentation. However, I am unable to figure out the issue. Please help me out of this.

解决方案

Django-mongodb-engine does not appear to be compatible with Python 3. In any case, django-nonrel itself is based on Django 1.5, which is definitely not Python 3 compatible.

这篇关于在Windows上使用django mongodb引擎在django中设置MongoDB时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆