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
I had this problem a few days ago.
As said above, the GAE sandbox on Windows blocks some routines or libraries, even built-in one, because it is developed to Unix-like platform.
I opened an issue to Google Team and they passed a workaround:
https://issuetracker.google.com/issues/38290292
That workaround worked well.
The workaround provided by Google, until a fix is implemented, is as follows:
<sdk_root>\google\appengine\tools\devappserver2\python\sandbox.py
_WHITE_LIST_C_MODULES = [xxx]
'_winreg',
'_ctypes',
If this does not succeed, run python -m pip install google-cloud
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...
I think that the problem is that GAE is not aware that you are in development mode, I suppose because the SERVER_SOFTWARE variable is set to something not starting with "Dev".
If you execute the following code (before calling any GAE library) it should fix the issue:
import os
os.environ['SERVER_SOFTWARE'] = 'Dev'
Note: Make sure this code is removed before going to production.