有一个包dir3,文件结构是这样的:
dir3/
dir3/__init__.py
dir3/mod.py
dir3/moda.py
mod.py代码如下
from . import moda
print('in mod.py')
z = 3
执行mod.py,在导入模块的时会报错,错误信息如下:
python2.7.3版本
Traceback (most recent call last):
File "D:\dir1\dir2\dir3\mod.py", line 1, in <module>
from . import moda
ValueError: Attempted relative import in non-package
python3.6.1版本
Traceback (most recent call last):
File "D:\dir1\dir2\dir3\mod.py", line 1, in <module>
from . import moda
ImportError: cannot import name 'moda'
我也是查了资料,而且python学习手册也是这么讲的(这本书感觉讲模块这一部分太啰嗦了,把我头都绕晕了),这应该是很简单的问题,我到底错在哪?
使用相对路径进行import的脚本不能直接运行,这个文档有描述(原因是一旦执行,module的名字就变成了__main__而不是当前module):
https://docs.python.org/2/tut...
如果一定要执行可以通过如下命令:
python -m mod.py