Я пытаюсь создать пакет Python3.6, но у меня возникли ошибки ModuleNotFound при импорте из пакета. Пакет имеет следующую структуру:
project/
project/
cache/
default.py
interface.py
__init__.py
handler.py
test.py
Файл __init__.py
содержит следующее:
from .handler import Handler
def getHandler(access_token=None, **kwargs):
return Handler(access_token, **kwargs)
А затем в handler.py
я пытаюсь импортировать из cache
со следующим:
from .cache.default import DefaultCache
Цель состоит в том, чтобы разрешить следующее по коду клиента:
import project
handler = project.getHandler()
Последний импорт не удался, и я не понимаю, почему. Есть идеи? ТИА.
Не уверен, насколько это актуально, но я проверяю это, выполняя следующее во внешней директории project
:
> pip install .
> python3 ../test.py
Возвращает следующую трассировку
(venv) Jamess-MacBook-Pro-2:project james$ python3 ../test.py
Traceback (most recent call last):
File "../test.py", line 1, in <module>
import project
File "/Users/james/Work/Project/project/venv/lib/python3.6/site-packages/project/__init__.py", line 1, in <module>
from .handler import Handler
File "/Users/james/Work/Project/project/venv/lib/python3.6/site-packages/project/handler.py", line 7, in <module>
from .cache.default import DefaultCache
ModuleNotFoundError: No module named 'project.cache'