【发布时间】:2019-03-22 23:57:47
【问题描述】:
向进口机器表明该规范代表一个 命名空间部分。路径条目查找器将规范中的“loader”设置为
None和 “submodule_search_locations” 到包含 部分。
用于加载的加载器。对于命名空间包,这应该是 设置为
None。
创建一个命名空间包,其部分位于文件系统上的两个不同路径 a/ 和 b/:
a/
namespace_package/
module_1.py
module_2.py
b/
namespace_package/
module_3.py
然后将这些路径添加到PYTHONPATH 环境变量中:
export PYTHONPATH="a:b"
最后导入命名空间包并使用 CPython 3.7 解释器打印其 __spec__.loader 和 __loader__ 属性:
python3 -c "import namespace_package; print(namespace_package.__spec__.loader); print(namespace_package.__loader__)"
表明他们是不是 None:
<_frozen_importlib_external._namespaceloader><_frozen_importlib_external._namespaceloader>
是文档错误、实施错误还是我的误解?
【问题讨论】:
标签: python import namespaces package python-import