gpt4 book ai didi

python - 命名空间包 __spec__.loader 和 __loader__ 属性未设置为 None

转载 作者:行者123 更新时间:2023-11-30 22:05:55 24 4
gpt4 key购买 nike

Python Language Reference状态:

To indicate to the import machinery that the spec represents a namespace portion. the path entry finder sets “loader” on the spec to None and “submodule_search_locations” to a list containing the portion.

Python Library Reference状态:

The loader to use for loading. For namespace packages this should be set to None.

但是要创建一个 namespace 包,其部分位于文件系统上的两个不同路径 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__)"

表明它们不是 :

<_frozen_importlib_external._NamespaceLoader object at 0x104b04128> <_frozen_importlib_external._NamespaceLoader object at 0x104b04128>

这是文档错误、实现错误还是我的误解?

最佳答案

看起来像it was right但是has been changed .

打开了一个问题来跟踪它:https://bugs.python.org/issue35181

关于python - 命名空间包 __spec__.loader 和 __loader__ 属性未设置为 None,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52869541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com