AttributeError:模块“”没有属性“ __path__”

时间:2018-09-13 16:08:27

标签: python python-3.x module package

我遇到了一个问题,我不知道如何进一步调试。

我有一个目的不同的项目,其中除其他外还利用了Python 3。 我创建了一个名为 package 的Python软件包。 软件包的顶级目录位于 myproject / python / 中。 在文件系统中,它具有以下结构:

- /home/myuser/myproject/python
--- package/
------ __init__.py
------ myutil.py
------ sub_package/
---------- __init__.py
---------- sub_sub_package/
-------------- __init__.py
-------------- myscript.py

所有 __ init __。py 文件均为空白,但根目录( package / __ init __。py )除外,该文件具有以下内容:

from . import myutil

到目前为止,一切都很好。 文件 myscript.py 实际上是直接运行的Python脚本。 由于它位于包中,因此我将其执行为:

cd /home/myuser/myproject/python
python -m package.sub_package.sub_sub_package.myscript

现在很奇怪。该脚本按预期工作。 但是,程序完成后,我收到以下消息:

/usr/bin/python3: Error while finding module specification for 
'package.sub_package.sub_sub_package.myscript.py'
(AttributeError: module 'package.sub_package.sub_sub_package.myscript' 
has no attribute '__path__')

我一直在网上搜索,但无济于事。 无法找出导致此消息的原因以及如何解决它。 我猜想这是Python 3导入处理的一些晦涩行为,但没有任何线索。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

运行文件名为“fibo.py”的 python 3 脚本的两种方法:

参数是 .py 文件的名称。

python fibo.py

参数是 Python 模块的名称,不带 .py

python -m fibo