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

泡菜模块出错。 AttributeError:类没有属性“__new__”

AttributeError:“datetime”模块没有属性“strptime”