在 python 中,如何使嵌套模块 package.package.module
可作为导入语句的 package.module
访问?
我有这样的文件结构:
script.py # this is where I want to import nested module
library/ # git submodule of python package
__init__.py
setup.py
library/ # actual (nested) python package to import
__init__.py
module.py
我添加了 library/__init__.py
以便 python 可以从根目录访问路径 library/library/
。 library/__init__.py
的内容是:
# /library/__init__.py
from .library import *
也就是说,将嵌套 library/library
包中的所有内容都带入父 library/
命名空间。
主要可执行文件script.py
的内容是:
# script.py
from library.module import something
# I do not want:
# from library.library.module import something
哪个给出了错误:
ModuleNotFoundError: No module named 'library.module'
但是当我将 script.py
的内容更改为:
# script.py
from library import module
它有效。为什么在这种情况下?我没有收到关于未找到模块的错误。
如何使嵌套模块从外部显示在父级?
我知道我可以将 library/
添加到 sys.path
中的 script.py
。但是,这对 linting 没有帮助,并且还需要在 library
模块之外进行代码更改。