AttributeError:模块''没有属性'__path__'
Posted
技术标签:
【中文标题】AttributeError:模块\'\'没有属性\'__path__\'【英文标题】:AttributeError: module '' has no attribute '__path__'AttributeError:模块''没有属性'__path__' 【发布时间】:2019-02-18 10:10:57 【问题描述】:我遇到了一个不知道如何进一步调试的问题。
我有一个具有不同目的的项目,其中使用了 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 导入处理的一些模糊行为,但不知道。 非常感谢任何帮助。
【问题讨论】:
看看这个线程中的解决方案 -> ***.com/questions/54030519/… Cheers 【参考方案1】:你在最后一个目录 sub_sub_package 中没有__init__.py
文件
尝试在那里添加一个空的__init__.py
文件
【讨论】:
我已经这样做了,行为似乎是一样的。 这似乎类似于这个问题***.com/questions/36230492/… 我已经看过那个了。该问题的答案中的主要问题是使用 -m 标志,我已经这样做了。【参考方案2】:使用文件名“fibo.py
”运行 python 3 脚本的两种方法:
参数是 .py 文件的名称。
python fibo.py
参数是 Python 模块的名称,不带 .py
python -m fibo
【讨论】:
以上是关于AttributeError:模块''没有属性'__path__'的主要内容,如果未能解决你的问题,请参考以下文章
AttributeError:模块“__main__”没有属性“AverageWordLengthExtractor”
Pydoop mapreduce“AttributeError:模块'wordcount_minimal'没有属性'__main__'”
Python多处理错误:AttributeError:模块'__main__'没有属性'__spec__'
Python:AttributeError 模块 x 没有属性 y