我们怎样才能得到一个迭代器来忽略丢失的库,比如“crypt”?

2024-05-06 09:45:05 发布

您现在位置:Python中文网/ 问答频道 /正文

如果使用pip安装stdlib_list并执行以下操作,则会收到一条错误消息:

import importlib
import itertools as itts
from stdlib_list import stdlib_list

def get_modules():
    module_names = iter(stdlib_list("3.7"))
    libs         = map(importlib.import_module, module_names)
    builtins     = dir(__builtins__)
    return  itts.chain(libs, builtins)

modules = get_modules()
for module in modules:
    pass

错误消息:

ImportError: The crypt module is not supported on Windows

如何创建一个迭代器,悄悄地移动到下一个结果


Tags: pipimportmodules消息getnames错误importlib
1条回答
网友
1楼 · 发布于 2024-05-06 09:45:05

您可以捕获ImportError

def try_import_module(name):
    try:
        return importlib.import_module(name)
    except ImportError:
        return None

然后:

def get_modules():
    module_names = stdlib_list("3.7")
    libs         = filter(None, map(try_import_module, module_names))
    builtins     = dir(__builtins__)
    return itts.chain(libs, builtins)

相关问题 更多 >