【问题标题】:Adding functionality to directly import certain functions from python sub-packages添加功能以直接从 python 子包中导入某些功能
【发布时间】:2021-04-18 23:11:27
【问题描述】:

考虑一个具有以下固定结构的常规 python 包

myPackage/
├──__init__.py 
├──basic/
│  ├──__init__.py
│  ├──basicOne/
│  │   ├──__init__.py
│  │   ├──f1.py
│  │   └──f2.py
│  ├──a1.py
│  └──a2.py
└──README.md

如果想在f1.py 中导入某个函数foo(),在a1.py 中导入roo(),那么 可以使用标准命令

from myPackage.basic.basicOne import f1

f1.foo()

from myPackage.basic import a1

a1.roo()

假设想要添加一个功能,其中函数foo()roo() 也可以这样调用

import myPackage as myPack
myPack.foo()
myPack.roo()

那么应该在包中编写哪些附加代码?如果这样的附加代码 写了,会不会影响分发和安装顶级包,myPackage。由于要分发的方法很多,让我们将方法固定到 一个在Packaging Python Projects 中给出。

【问题讨论】:

  • 你想要的是一个带有选项的命令行实用程序,你的主要方法取决于命令行调用不同的 python 方法。

标签: python package python-import


【解决方案1】:

只需转到最顶层的__init__.py 文件并在那里导入您需要的内容:

from .basic.basicOne.f1 import foo
from .basic.a1 import roo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-26
    • 1970-01-01
    • 1970-01-01
    • 2020-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多