Ошибка ModuleNotFoundError, полученная при использовании tinymce с Django

Проблема

Я пытаюсь добавить стороннее приложение в мой проект, чтобы я мог добавить его в приложение под названием "Растения", но когда я следую инструкциям по установке, я получаю сообщение об ошибке.

Устранение неполадок, которые я пробовал

  1. Удаление и повторная установка tinymce с pip install django-tinymce и pip uninstall django-tinymce.
  2. Убедился, что я был в virtualenv при установке и во время работы моего сервера с python manage.py runserver.
  3. Полностью установил модуль tinymce, затем перезагрузил терминал.
  4. Убедился, что мои требования были созданы правильно с помощью pip freeze > requirements.txt
  5. .
  6. Пересмотрел все мои орфографические записи в base.py, plants > models.py и config > urls.py
  7. .
  8. Подтвердил, что мой DJANGO_SETTINGS_MODULE был установлен правильно в config.wsgi.py и manage.py
  9. .
  10. Прочитал все выпуски stackoverflow с одной и той же ошибкой трассировки.
  11. Добавление path('tinymce/', include('tinymce.urls')), к plants > urls.py, которое не имело смысла, поэтому я его удалил

Traceback

Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
  File "/opt/homebrew/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner
    self.run()
  File "/opt/homebrew/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run
    self._target(*self._args, **self._kwargs)
  File "/Users/mary/Projects/opensprouts-web/opensprouts/lib/python3.9/site-packages/django/utils/autoreload.py", line 53, in wrapper
    fn(*args, **kwargs)
  File "/Users/mary/Projects/opensprouts-web/opensprouts/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 110, in inner_run
    autoreload.raise_last_exception()
  File "/Users/mary/Projects/opensprouts-web/opensprouts/lib/python3.9/site-packages/django/utils/autoreload.py", line 76, in raise_last_exception
    raise _exception[1]
  File "/Users/mary/Projects/opensprouts-web/opensprouts/lib/python3.9/site-packages/django/core/management/__init__.py", line 357, in execute
    autoreload.check_errors(django.setup)()
  File "/Users/mary/Projects/opensprouts-web/opensprouts/lib/python3.9/site-packages/django/utils/autoreload.py", line 53, in wrapper
    fn(*args, **kwargs)
  File "/Users/mary/Projects/opensprouts-web/opensprouts/lib/python3.9/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/Users/mary/Projects/opensprouts-web/opensprouts/lib/python3.9/site-packages/django/apps/registry.py", line 91, in populate
    app_config = AppConfig.create(entry)
  File "/Users/mary/Projects/opensprouts-web/opensprouts/lib/python3.9/site-packages/django/apps/config.py", line 90, in create
    module = import_module(entry)
  File "/opt/homebrew/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'tinymce'

Структура файла

Project
|
+-- config
|   |
|   +-- settings
|   |   |
|   |   +-- __init__.py
|   |   +-- base.py
|   |   +-- local.py
|   |   +-- production.py
|   |
|   +-- urls.py
|   +-- wsgi.py
|
+-- plants
|   |
|   +-- __init__.py
|   +-- admin.py
|   +-- apps.py
|   +-- models.py
|   +-- urls.py
|   +-- views.py
|
+--manage.py
+--requirements.txt

Code

base.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    .
    .
    .
    'allauth.account',
    'crispy_forms',
    'tinymce',
]

ROOT_URLCONF = "config.urls"

config > urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('accounts/', include('allauth.urls')),
    path('accounts/', include('django.contrib.auth.urls')),
    path('', include('pages.urls')),
    path('plants/', include('plants.urls')),
    path('tinymce/', include('tinymce.urls')),
]

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

plants > models.py

from tinymce import models as tinymce_models

class Plant(models.Model):
    name = models.CharField(max_length=120)
    slug = models.SlugField(null=False, unique=True)
    description = models.TextField()
    .
    .
    .
    textbox = tinymce_models.HTMLField()

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse("plant_detail", kwargs={"slug": self.slug})

manage.py

import os
import sys


def main():
    """Run administrative tasks."""
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.local')
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)


if __name__ == '__main__':
    main()

requirements.txt

asgiref==3.5.2
click==8.0.4
Django==4.0.5
django-tinymce==3.4.0
Flask==2.0.1
itsdangerous==2.1.0
Jinja2==3.0.3
MarkupSafe==2.1.0
sqlparse==0.4.2
Werkzeug==2.0.3
Вернуться на верх