ModuleNotFoundError при импорте пользовательских модулей приложения Django - PullRequest
0 голосов
/ 03 июня 2019

В настоящее время я пытаюсь создать собственное приложение django в своем проекте.Я пытаюсь получить доступ к некоторым моделям из другого каталога в рамках того же проекта, но не могу импортировать что-либо из модулей моего приложения.

Я рассмотрел множество проблем здесь, в Stackoverflow, и мне не повезлос любым из них.Я пытался редактировать мой sys.path вручную.И я попытался возиться с моим файлом settings.py.

Текущий каталог: https://gyazo.com/fe75655bd3296c47aaa36f5a10c92dfb

Я пытаюсь запустить следующий импорт в каталоге bot вмое titandash приложение.

from titanbot.titandash.models.queue import Queue

Исправление, которое я попробовал с моим sys.path, выглядит следующим образом:

import os
import sys

cwd = os.getcwd().split("\\")

if cwd not in sys.path:
    sys.path.append("\\".join(cwd))
if cwd[:-1] not in sys.path:
    sys.path.append("\\".join(cwd[:-1]))

sys.path.append("\\".join(cwd + ["titandash"]))

Я ожидаю, что мои модули будут импортированы из любого каталога и обратно.вперед для использования в других местах.

  File "C:\Users\Brett\repos\tt2_py\titanbot\titandash\urls.py", line 3, in <module>
    from .views import dashboard, project_settings
  File "C:\Users\Brett\repos\tt2_py\titanbot\titandash\views.py", line 3, in <module>
    from .utils import start
  File "C:\Users\Brett\repos\tt2_py\titanbot\titandash\utils.py", line 2, in <module>
    from .models.queue import Queue
  File "C:\Users\Brett\repos\tt2_py\titanbot\titandash\models\queue.py", line 6, in <module>
    from titandash.bot.core.bot import grab_functions
  File "C:\Users\Brett\repos\tt2_py\titanbot\titandash\bot\core\bot.py", line 11, in <module>
    from titanbot.titandash.models.queue import Queue
ModuleNotFoundError: No module named 'titanbot.titandash'

Примечание: этот стек поднимается при попытке запустить мой сервер Django локально ./manage.py runserver

1 Ответ

0 голосов
/ 03 июня 2019

Каталог titandash находится в каталоге проекта (тот, который содержит manage.py), так же как и путь Python.Поэтому импорт должен быть from titandash.models.queue import Queue без префикса titanbot.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...