Python Can';导入我自己的软件包时无法访问模块

Python Can';导入我自己的软件包时无法访问模块,python,Python,我得到了一个目录结构,这是一个简化的示例: project_root/ __init__.py test.py mypack/ __init__.py mymodule.py test.py包含以下内容: from . import mypack mypack.mymodule.some_function() from . import * __all__ = ['mypack'] mypack的\uuuu init\uuuu.py

我得到了一个目录结构,这是一个简化的示例:

project_root/
    __init__.py
    test.py
    mypack/
        __init__.py
        mymodule.py
test.py
包含以下内容:

from . import mypack

mypack.mymodule.some_function()
from . import *
__all__ = ['mypack']
mypack的
\uuuu init\uuuu.py
包含以下内容:

from . import mypack

mypack.mymodule.some_function()
from . import *
__all__ = ['mypack']
执行此操作时,Python告诉我“mypack”没有“mymodule”。
我只能从mypack导入mymodule

这在Python2.7和Python3.5中都会发生


我怎样才能让它工作?似乎只有在安装软件包时才能执行此操作,而不是使用项目目录。

对于要使用的选项,您必须实际导入
mypack中的函数。\uuuu init\uuuu.py
文件:

#In mypack/__init__.py
import mymodule
虽然它可以工作,但这并不是最好的方法,我建议(我仍然相信它可以更好):


通过这种方式,您可以知道文件的来源,并且不必修改uuu init_uuuuuuuuuuy.py文件即可工作

如果您希望从软件包导入中访问模块,则需要将其包含在
\uuuuuu all\uuuuuuuuu
中:

# from . import *  This is prolly not needed when using __all__
__all__ = ['mymodule']

看来你误解了
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。您可能想查看包的
\uuu init\uuuuuuuy.py
文件中有什么?我不明白为什么
import mypack
不会抛出ImportError。这应该是来自的
。导入mypack
,是否应该?您确定要导入正确的
mypack
模块吗?@Rawing My bad,它是来自。导入mypack
。我编辑了这篇文章。谢谢。@MosesKoledoye我在帖子中添加了
\uuu init\uuuu.py
内容。