在保留 linux 支持的同时导入 winreg

import winreg while retaining linux support

我有一个 python 3 应用程序,目前支持 windows 和 linux。我想构建一些 windows 特定功能,这需要我导入 winreg。

但是 import winreg 语句阻止代码在 linux 下执行。

如何在不破坏 linux 下的代码的情况下使用 winreg?

Manuel,如果您还没有找到解决方案,尽管我认为您已经找到了,但也许其他人会发现它有用。

使用以下代码围栏代码:

if 'posix' in sys.builtin_module_names:
    # *nix
    ...

或:

if 'nt' in sys.builtin_module_names:
    # Win
    ...

至少我在 python 2.

中编写 x 平台应用程序时曾多次这样做

尝试使用 importlib 来测试 winreg 是否存在。

winreg_exists = importlib.find_loader('winreg')
if winreg_exists:
    import winreg
...
if winreg_exists:
    # do winreg stuff