列出命名空间包的所有子包
List all sub-packages of a namespace package
Python 有能力创建 namespace packages。如何获取命名空间下已安装软件包的列表?
即类似于:
import namespace_package
dir(namespace_pageage)
您可以使用 setuptools
中的 find_packages 函数。此函数经常在 setup.py
文件中使用,但您也可以将其用于其他目的。
# find the folder of the package
from pathlib import Path
package_root_folder = Path(namespace_package.__file__).parent
# for that folder, detect all Python packages inside
from setuptools import find_packages
all_packages = find_packages(str(package_root_folder))
来自Python Packaging User Guide:
import pkgutil
list(
pkgutil.iter_modules(
namespace_package.__path__,
namespace_package.__name__ + "."
)
)
请注意,这将 不是 return 主命名空间包中的(子)命名空间包(即,如果您有嵌套的命名空间包)。
Python 有能力创建 namespace packages。如何获取命名空间下已安装软件包的列表?
即类似于:
import namespace_package
dir(namespace_pageage)
您可以使用 setuptools
中的 find_packages 函数。此函数经常在 setup.py
文件中使用,但您也可以将其用于其他目的。
# find the folder of the package
from pathlib import Path
package_root_folder = Path(namespace_package.__file__).parent
# for that folder, detect all Python packages inside
from setuptools import find_packages
all_packages = find_packages(str(package_root_folder))
来自Python Packaging User Guide:
import pkgutil
list(
pkgutil.iter_modules(
namespace_package.__path__,
namespace_package.__name__ + "."
)
)
请注意,这将 不是 return 主命名空间包中的(子)命名空间包(即,如果您有嵌套的命名空间包)。