首页 文章

如何在Windows上避免使用Google Cloud SDK和Python API“没有名为_winreg的模块”问题?

提问于
浏览
0

在Windows下使用Google Cloud SDK和Python启动本地开发服务器时,尝试加载“platform.py”时会引发错误,因为此模块正在尝试导入“_winreg” . 显然,这是由于应用引擎的沙盒:

_winreg是一个用于访问Windows注册表服务的库 . 它在您的Python shell中可用,因为您在Windows机器上运行,但在将应用程序上载到App Engine 生产环境 服务器时它将不可用 - 因此,它在开发服务器中也不可用 . [参考]

我该如何避免这个问题?

1 回答

  • 0

    由于App Engine不使用_winreg加载的变量,我可以在 platform.py 中注释掉相关部分:

    # Emulation using _winreg (added in Python 2.0) and
    # sys.getwindowsversion() (added in Python 2.3)
    GetVersionEx = sys.getwindowsversion
    '''
    import _winreg
    RegQueryValueEx = _winreg.QueryValueEx
    RegOpenKeyEx = _winreg.OpenKeyEx
    RegCloseKey = _winreg.CloseKey
    HKEY_LOCAL_MACHINE = _winreg.HKEY_LOCAL_MACHINE
    '''
    VER_PLATFORM_WIN32_WINDOWS = 1
    VER_PLATFORM_WIN32_NT = 2
    VER_NT_WORKSTATION = 1
    VER_NT_SERVER = 3
    REG_SZ = 1
    

    这似乎不会影响App Engine,它会消除错误!

相关问题