猿问

如何从同一目录中的模块导入?

我正在尝试制作一个 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()

最后一次导入失败了,我不清楚为什么。有任何想法吗?TIA。


不确定它的相关性,但我正在通过在外部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'


皈依舞
浏览 149回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答