【发布时间】: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 导入处理的一些模糊行为,但不知道。 非常感谢任何帮助。
【问题讨论】:
-
看看这个线程中的解决方案 -> stackoverflow.com/questions/54030519/… Cheers
标签: python python-3.x module package