Unable to import _winreg in Python 2.7.9 virtual environment

google-app-engine, python, python-2.7, windows, winreg

Solution

Module `_winreg`, as the docs say, exists to "expose the Windows registry API to Python".

App Engine does not supply a "Windows registry API" (nor any other Windows-specific API). Therefore, its sandbox blocks attempts to `import` the module -- note, at the end of your stack trace, that the exception is deliberately raised in module `sandbox.py` of the App Engine SDK.

Python's "virtual env" plays no part here -- it's all about App Engine.

Please clarify what task you're trying to accomplish with `_winreg` once your GAE app is deployed -- assume it's deployed to Linux servers (although the GAE runtime doesn't supply Linux-specific APIs either:-), so there is no Windows Registry API anywhere in the neighborhood...

Problem

I'm running an app engine application in a virtual environment on windows 7 64bit, python 2.7.9 x64. Here's the stacktrace: ``` p_system = platform.system() File "C:\Python27\lib\platform.py", line 1310, in system return uname()[0] File "C:\Python27\lib\platform.py", line 1206, in uname release,version,csd,ptype = win32_ver() File "C:\Python27\lib\platform.py", line 597, in win32_ver import _winreg File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\python\sandbox.py", line 945, in load_module raise ImportError('No module named %s' % fullname) ImportError: No module named _winreg ``` However, it works just fine from cli (outside venv): ``` Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\Admin>python Python 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit (AMD64)] on win 32 Type "help", "copyright", "credits" or "license" for more information. >>> import _winreg >>> import platform >>> platform.system() 'Windows' >>> ``` Why does this happen? What can I do to fix this?

Original source