Просмотр Django: Не удается импортировать модуль из другого каталога
У меня есть структура проекта django, которая выглядит следующим образом:
основной проект/ Приложение 1/ Views.py Models.py .. Приложение 2/ Views.py Models.py ..
Python_code/
Object_refresh/
__init.py__
refresh.py
config.py
Внутри views.py У меня есть представление под названием "run_refresh", которое будет запускаться refesh.py из python_code. Но я сталкиваюсь с проблемой при попытке ссылаться на другие .py-файлы внутри Python_code.
В представлении, которое я использую: from python_code import * Но оно не может видеть main.py. Если я введу "from python_code import main", оно заработает, но тогда оно не сможет найти env_config.py.
Это то, что у меня есть в моем view.py:
from core_project.python_code.object_refresh import *
..
И это ошибка:
newfeature = asyncio.run(object_refresh.refresh(rows_to_refresh, schema, 'tbl_name'))
print(newfeature)
Error:
newfeature = asyncio.run(object_refresh.refresh(rows_to_refresh, schema, 'tbl_name'))
^^^^^^^^^^^^^^^^^^^
AttributeError: module 'core_project.python_code.object_refresh' has no attribute 'refresh'
Возможно, мне нужно настроить мой init.py определенным образом, но я не уверен. Буду признателен за любую помощь.
Вероятно, ваша проблема связана с тем, как вы импортируете модули внутри пакета.
Когда вы пишете:
from core_project.python_code.object_refresh import *
Вы импортируете только то, что определено в _init_.py, а не сами файлы, такие как refresh.py или config.py. Таким образом, refresh по умолчанию не отображается.
Чтобы исправить это, перейдите к файлу _init_.py в папке object_refresh/ и добавьте:
from . import refresh
from . import config