Reputation: 188
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 !
Upvotes: 2
Views: 6456
Reputation: 24007
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?
Upvotes: 1