【问题标题】:Error was: cannot import name BaseDatabaseOperations错误是:无法导入名称 BaseDatabaseOperations
【发布时间】:2017-07-19 11:41:06
【问题描述】:

我正在使用 mongodb 和 django 制作应用程序。我找不到任何其他方式将我的数据库与 django 连接。所以使用 mongokit 进行连接 我得到了这个错误:-

命令提示符-

 python manage.py runserver
Traceback (most recent call last):
  File "manage.py", line 11, in <module>
    execute_from_command_line(sys.argv)
  File "/var/www/html/admin_python/orahienv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/var/www/html/admin_python/orahienv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 312, in execute
    django.setup()
  File "/var/www/html/admin_python/orahienv/local/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/var/www/html/admin_python/orahienv/local/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/var/www/html/admin_python/orahienv/local/lib/python2.7/site-packages/django/apps/config.py", line 198, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/home/somya/Desktop/backup/admin_python/admin_app/models.py", line 24, in <module>
    from django_mongokit import connection
  File "/var/www/html/admin_python/orahienv/local/lib/python2.7/site-packages/django_mongokit/__init__.py", line 3, in <module>
    from shortcut import get_database, get_version, connection
  File "/var/www/html/admin_python/orahienv/local/lib/python2.7/site-packages/django_mongokit/shortcut.py", line 13, in <module>
    connection = connections['mongodb'].connection
  File "/var/www/html/admin_python/orahienv/local/lib/python2.7/site-packages/django/db/utils.py", line 240, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/var/www/html/admin_python/orahienv/local/lib/python2.7/site-packages/django/db/utils.py", line 129, in load_backend
    raise ImproperlyConfigured(error_msg)
django.core.exceptions.ImproperlyConfigured: 'django_mongokit.mongodb' isn't an available database backend.
Try using 'django.db.backends.XXX', where XXX is one of:
    u'base', u'mysql', u'oracle', u'postgresql_psycopg2', u'sqlite3'
Error was: cannot import name BaseDatabaseOperations

setting.py-

 DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'pom',
        'USER': 'root',
        'PASSWORD': 'root',
        'HOST': 'localhost',
    },
    'mongodb': {
        'ENGINE': 'django_mongokit.mongodb',
        'NAME': 'pom',
    },

}

点子列表:-

pip list
You are using pip version 6.0.8, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
amqp (1.4.9)
anyjson (0.3.3)
Babel (2.3.4)
backports.ssl-match-hostname (3.5.0.1)
beautifulsoup4 (4.5.1)
billiard (3.3.0.23)
bs4 (0.0.1)
celery (3.1.23)
certifi (2016.2.28)
Django (1.8)
django-bootstrap3 (9.0.0)
django-celery (3.1.17)
django-cors-headers (1.1.0)
django-crispy-forms (1.6.0)
django-datatable (0.2.0)
django-datatables-view (1.13.0)
django-flash (1.8)
django-mongokit (0.2.6)
django-picklefield (0.3.2)
djangorestframework (3.3.2)
flower (0.9.1)
futures (3.0.5)
kombu (3.0.35)
mongoengine (0.13.0)
mongokit (0.9.1.1)
MySQL-python (1.2.5)
numpy (1.11.1)
olefile (0.44)
pandas (0.18.1)
pip (6.0.8)
pycrypto (2.6.1)
pymongo (2.8)
python-dateutil (2.5.3)
python-memcached (1.57)
pytz (2016.1)
razorpay (0.2.0)
requests (2.9.1)
setuptools (12.0.5)
six (1.10.0)
tornado (4.2)
validate-email (1.3)
wheel (0.29.0)
xmltodict (0.10.2)

【问题讨论】:

  • 请在您的问题中包含您的数据库设置,这将有助于进一步调试...

标签: django mongodb django-mongodb-engine


【解决方案1】:

django-mongokit 0.2.6 于 2013 年发布,因此不支持 Django 1.8。

您的导入错误似乎是has been fixed,但此后一直没有发布。

您可以尝试安装 master 分支。但是,您应该仔细考虑是否要将项目基于自 2013 年以来未发布过的库。

# Install master branch
pip install git+git://github.com/peterbe/django-mongokit.git@master

# Or specify commit to install
pip install git+git://github.com/peterbe/django-mongokit.git@b7c10d41675055490a88f7a67f65728465545142

【讨论】:

  • 显示 - 要求已经满足 ----- 要求已经满足(使用 --upgrade 升级):pymongo>=2.5 in /var/www/html/admin_python/orahienv/lib/ python2.7/site-packages(来自 mongokit->django-mongokit==0.2.6)
  • 当它为其他库显示requirement already satisfied 时,这只是为了提供信息,这不是错误。如果 install 命令没有安装 master 分支,您可以尝试先用pip uninstall django-mongokit 卸载它,然后重新安装。
  • 文件“/var/www/html/admin_python/orahienv/local/lib/python2.7/site-packages/django/db/backends/django_mongokit/base.py”,第 7 行,在 from django.db.backends import ( ImportError: cannot import name BaseDatabaseOperations
  • 在这种情况下,你还没有成功安装 master 分支,你仍然在运行 0.2.6,它不适用于 Django 1.8+
猜你喜欢
  • 2017-08-11
  • 2021-02-19
  • 2014-01-29
  • 2016-11-21
  • 2018-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多