遇到一个需求,要在 editable 模式和 正常安装模式读取不同的文件

下面代码需要放在一个包里,或者 自己把 package_name 改成任意其他任意包,即可检查其他包是否为可编辑模式安装

from importlib.metadata import Distribution

def is_editable() -> bool:
    # 检查自身是否为可编辑式安装
    # 获取包名
    package_name = __package__.split('.')[0]
    dist = Distribution.from_name(package_name)
    origin = getattr(dist, "origin", None)
    if origin is not None:
        dir_info = getattr(origin, 'dir_info', None)
        if dir_info is not None:
            return getattr(dir_info, 'editable', False)
    return False

# 检查自己是否为可编辑模式安装
print('is_editable', is_editable())
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐