Python 3.x Python模块无法识别同一文件夹中的文件

Python 3.x Python模块无法识别同一文件夹中的文件,python-3.x,setuptools,python-module,Python 3.x,Setuptools,Python Module,我使用setuptools制作了一个包(至少尝试过),并试图从另一个python文件中使用它。但是,包中的模块似乎彼此不识别 树 \uuuu init\uuuuu.py: import module #code pyfile.py import pkg #code 当我试图运行pyfile.py时,我得到 Traceback (most recent call last): File "/.../py/pyfile.py", line 1, in <module> i

我使用
setuptools
制作了一个包(至少尝试过),并试图从另一个python文件中使用它。但是,包中的模块似乎彼此不识别

\uuuu init\uuuuu.py

import module
#code
pyfile.py

import pkg
#code
当我试图运行
pyfile.py
时,我得到

Traceback (most recent call last):
  File "/.../py/pyfile.py", line 1, in <module>
    import pkg
  File "/.../pkg/pkg/__init__.py", line 1, in <module>
    import module
  ModuleNotFoundError: No module named 'module'
回溯(最近一次呼叫最后一次):
文件“/…/py/pyfile.py”,第1行,在
进口包装
文件“/…/pkg/pkg/_init__.py”,第1行,在
导入模块
ModuleNotFoundError:没有名为“module”的模块

如果我编写
import pkg.module
,它可以正常工作,但我不明白为什么self.referential代码会实用。

\uuu init\uuu
中的导入更改为

from . import module
您可以在python文档中阅读更多信息


(顺便说一句,据我所知,
setuptools
在此不涉及。)

这很奇怪。我希望
import module
可以查看它的文件夹。我认为这是python 2.7和python 3.5之间的区别(在python 2.7中,您可以只使用import module…)是的,您是对的。Python2.7手册说:“子模块通常需要相互引用。[…]事实上,这种引用非常常见,以至于import语句首先在包含包中查找,然后再查找标准模块搜索路径。”Python3.5不在同一个包中查找。但是,上述解决方案适用于Python 2和Python 3。
from . import module