2

I installed and configured a Django/MongoDB like this way !

pip install virtualenv

source myproject/bin/activate

pip install hg+https://bitbucket.org/wkornewald/django-nonrel

pip install hg+https://bitbucket.org/wkornewald/djangotoolbox

pip install git+https://github.com/django-nonrel/mongodb-engine

All these operations are successful !

now , when I changed the settings.py file like this way :

DATABASES = {
    'default': {
        'ENGINE': 'django_mongodb_engine', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'mong_db',                      # Or path to database file if using sqlite3.
        'USER': '',                      # Not used with sqlite3.
        'PASSWORD': '',                  # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }

The mind-bending error occurs:

Error was: No module named django_mongodb_engine.base

Obviously the django_mongodb_engine successful installed. but why this error will appear?

btw,Forgive my poor English !

1 Answer 1

1

I went through the same steps you did, then opened a Python shell:

$ python
>>> import django_mongodb_engine.base
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/emptysquare/.virtualenvs/foo/lib/python2.7/site-packages/django_mongodb_engine/base.py", line 4, in <module>
    from django.db.backends.signals import connection_created
  File "/Users/emptysquare/.virtualenvs/foo/lib/python2.7/site-packages/django/db/__init__.py", line 14, in <module>
    if not settings.DATABASES:
  File "/Users/emptysquare/.virtualenvs/foo/lib/python2.7/site-packages/django/utils/functional.py", line 276, in __getattr__
    self._setup()
  File "/Users/emptysquare/.virtualenvs/foo/lib/python2.7/site-packages/django/conf/__init__.py", line 40, in _setup
    raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.

But if I do:

$ DJANGO_SETTINGS_MODULE=settings python
>>> import django_mongodb_engine.base

... it works.

Can you set DJANGO_SETTINGS_MODULE and try importing django_mongodb_engine.base in the Python shell?

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.