Python从包安装子包

Vla*_*nko 3 python installation pip package python-3.x

可以从包中安装一些特殊的子包吗?

例如,我想用 slack、datadog、哨兵插件(包装器)创建包。但我想允许用户安装他想安装的东西。

喜欢:

pip install super_plugins --plugins slack, datadog
Run Code Online (Sandbox Code Playgroud)

可以在不将所有插件分离到不同包的情况下完成吗?

Vla*_*nko 7

其实,这很简单。这称为Packaging namespace packageshttps://packaging.python.org/guides/packaging-namespace-packages/

您所需要的只是将所有包分离为子包,然后使用命名空间安装它。

# for all packages
pip install super_plugins

# for specific
pip install super_plugins.slack super_plugins.datadog
Run Code Online (Sandbox Code Playgroud)

  • 这是正确的吗?我对命名空间包的理解是,它允许您将单个包分布在多个目录中,所有目录都使用相同的命名空间。父包中没有可选的子包。您能否提供更多细节来说明您是如何实现这一目标的? (4认同)