"import lib.subpackage.blah as foo" issue - "AttributeError: module 'lib' has no attribute 'subpackage'"
"import lib.subpackage.blah as foo" issue - "AttributeError: module 'lib' has no attribute 'subpackage'"
我的文件系统结构:
main.py
.
lib/
__init__.py
.
subpackage/
__init__.py
.
app.py
sched.py
main.py:
import lib.subpackage
lib/__init__.py 为空。
lib/subpackage/__init__.py:
import lib.subpackage.sched
import lib.subpackage.app
lib/subpackage/app.py:
import lib.subpackage.sched as foo
lib/subpackage/sched.py 为空。
我收到此错误:
Traceback (most recent call last):
File "c:\Users\logix\Desktop\code_\from_linux\dbg\main.py", line 1, in <module>
import lib.subpackage
File "c:\Users\logix\Desktop\code_\from_linux\dbg\lib\subpackage\__init__.py", line 2, in <module>
import lib.subpackage.app
File "c:\Users\logix\Desktop\code_\from_linux\dbg\lib\subpackage\app.py", line 1, in <module>
import lib.subpackage.sched as foo
AttributeError: module 'lib' has no attribute 'subpackage'
我正在从命令行使用 Python 3.6.4。
有什么想法吗?
这是导入机制中使用别名时的一个已知错误;报告为 issue #23203:
Aliasing import of sub-{module,package} from the package raises AttributeError on import.
We have three nested packages: foo
-> bar
-> baz
. The bar
package imports foo.bar.baz
. We try to import foo.bar
. This works well unless we try to alias the foo.bar.baz
import in foo.bar
with the import ... as ...
syntax.
此错误修复是 Python 3.7(目前仅在 alpha 版本中)的一部分。
解决方法是使用相对导入:
from . import sched as foo
我的文件系统结构:
main.py
.lib/
__init__.py
.subpackage/
__init__.py
.app.py
sched.py
main.py:
import lib.subpackage
lib/__init__.py 为空。
lib/subpackage/__init__.py:
import lib.subpackage.sched
import lib.subpackage.app
lib/subpackage/app.py:
import lib.subpackage.sched as foo
lib/subpackage/sched.py 为空。
我收到此错误:
Traceback (most recent call last):
File "c:\Users\logix\Desktop\code_\from_linux\dbg\main.py", line 1, in <module>
import lib.subpackage
File "c:\Users\logix\Desktop\code_\from_linux\dbg\lib\subpackage\__init__.py", line 2, in <module>
import lib.subpackage.app
File "c:\Users\logix\Desktop\code_\from_linux\dbg\lib\subpackage\app.py", line 1, in <module>
import lib.subpackage.sched as foo
AttributeError: module 'lib' has no attribute 'subpackage'
我正在从命令行使用 Python 3.6.4。
有什么想法吗?
这是导入机制中使用别名时的一个已知错误;报告为 issue #23203:
Aliasing import of sub-{module,package} from the package raises AttributeError on import.
We have three nested packages:
foo
->bar
->baz
. Thebar
package importsfoo.bar.baz
. We try toimport foo.bar
. This works well unless we try to alias thefoo.bar.baz
import infoo.bar
with theimport ... as ...
syntax.
此错误修复是 Python 3.7(目前仅在 alpha 版本中)的一部分。
解决方法是使用相对导入:
from . import sched as foo