Python error when using Django and Djongo on fresh computer

1k views Asked by At

I recently reformatted my computer and had to setup my enviornment. I pip installed django, djongo, and then installed MongoDB with Compass.

I pulled my code from Github and tried to run it. I get the following error:

Exception in thread django-main-thread:
Traceback (most recent call last):
  File "C:\Python310\lib\site-packages\django\db\utils.py", line 113, in load_backend
    return import_module("%s.base" % backend_name)
  File "C:\Python310\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\Python310\lib\site-packages\djongo\base.py", line 12, in <module>
    from .cursor import Cursor
  File "C:\Python310\lib\site-packages\djongo\cursor.py", line 4, in <module>
    from .sql2mongo.query import Query
  File "C:\Python310\lib\site-packages\djongo\sql2mongo\query.py", line 16, in <module>
    from sqlparse import parse as sqlparse
ModuleNotFoundError: No module named 'sqlparse'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Python310\lib\threading.py", line 1009, in _bootstrap_inner
    self.run()
  File "C:\Python310\lib\threading.py", line 946, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Python310\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "C:\Python310\lib\site-packages\django\core\management\commands\runserver.py", line 125, in inner_run
    autoreload.raise_last_exception()
  File "C:\Python310\lib\site-packages\django\utils\autoreload.py", line 87, in raise_last_exception
    raise _exception[1]
  File "C:\Python310\lib\site-packages\django\core\management\__init__.py", line 398, in execute
    autoreload.check_errors(django.setup)()
  File "C:\Python310\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "C:\Python310\lib\site-packages\django\__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\Python310\lib\site-packages\django\apps\registry.py", line 116, in populate
    app_config.import_models()
  File "C:\Python310\lib\site-packages\django\apps\config.py", line 304, in import_models
    self.models_module = import_module(models_module_name)
  File "C:\Python310\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\Users\Cody\projects\parser\TestlioParser\adobeparser\models.py", line 4, in <module>
    class Property(models.Model):
  File "C:\Python310\lib\site-packages\django\db\models\base.py", line 141, in __new__
    new_class.add_to_class("_meta", Options(meta, app_label))
  File "C:\Python310\lib\site-packages\django\db\models\base.py", line 369, in add_to_class
    value.contribute_to_class(cls, name)
  File "C:\Python310\lib\site-packages\django\db\models\options.py", line 235, in contribute_to_class
    self.db_table, connection.ops.max_name_length()
  File "C:\Python310\lib\site-packages\django\utils\connection.py", line 15, in __getattr__
    return getattr(self._connections[self._alias], item)
  File "C:\Python310\lib\site-packages\django\utils\connection.py", line 62, in __getitem__
    conn = self.create_connection(alias)
  File "C:\Python310\lib\site-packages\django\db\utils.py", line 208, in create_connection
    backend = load_backend(db["ENGINE"])
  File "C:\Python310\lib\site-packages\django\db\utils.py", line 126, in load_backend
    raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: 'djongo' isn't an available database backend or couldn't be imported. Check the above exception. To use one of the built-in backends, use 'django.db.backends.XXX', where XXX is one of:
    'mysql', 'oracle', 'postgresql', 'sqlite3'

My current pip list

Package    Version
---------- -------
asgiref    3.5.0
Django     4.0.4
djongo     1.3.6
pip        22.0.4
pymongo    4.1.1
pytz       2022.1
setuptools 58.1.0
sqlparse   0.2.4
tzdata     2022.1

I have tried removing everything and reinstalling it all and that did not change anything. I am unsure how to fix this issue.

Database settings

DATABASES = {
    'default': {
        'ENGINE': 'djongo',
        'NAME': 'dd',
    }
}
1

There are 1 answers

3
pizoelectric On

Is this pip pointed at C:\Python310?

It's possible that you've installed those packages against a different version of Python or different virtual env.

The django server execution is running in the Python3.10 context, and may not be aware of the packages you've installed in this specific pip.


Is your real issue is a misconfiguration of the ENGINE setting?

Look at the last few lines of your stacktrace. Django is complaining that you've picked an invalid option for the db['ENGINE'] setting.

File "C:\Python310\lib\site-packages\django\db\utils.py", line 208, in create_connection
    backend = load_backend(db["ENGINE"])
  File "C:\Python310\lib\site-packages\django\db\utils.py", line 126, in load_backend
    raise ImproperlyConfigured(  
django.core.exceptions.ImproperlyConfigured: 'djongo' isn't an available database backend or couldn't be imported. Check the above exception. To use one of the built-in backends, use 'django.db.backends.XXX', where XXX is one of:
    'mysql', 'oracle', 'postgresql', 'sqlite3'