2017-09-20 77 views
0

我在Windows上使用GAE沙箱,python 2.7和virtualenv。 當我嘗試使用要求lib中,我發現了以下錯誤:全局名稱'_dlopen'未定義

global name '_dlopen' is not defined 

完整的堆棧:

INFO  2017-09-20 13:40:20,551 module.py:821] default: "GET/HTTP/1.1" 500 
     from ctypes import (c_buffer, POINTER, byref, create_unicode_buffer, 
    File "c:\python27\Lib\ctypes\__init__.py", line 450, in <module> 
     pythonapi = PyDLL(None) 
    File "c:\python27\Lib\ctypes\__init__.py", line 362, in __init__ 
     self._handle = _dlopen(self._name, mode) 
    NameError: global name '_dlopen' is not defined 

GAE上的窗戶確實有與裝載的ctypes和和WinReg項問題,但它現在列入白名單自動開發環境。

我錯過了什麼?

+0

我必須具體到同樣的問題Windows 10.卸載/重新安裝所有內容,根本沒有快樂。明確遵循Google等的所有安裝說明(並多次確保我沒有遺漏任何內容)。 安裝非常簡單;一個本地SDK GAE項目,hello-world質量,試圖使用Flask。非常光禿禿的骨頭。 Python 2.7,通常的基礎需要GAE的東西。 在Mac上運行相同的過程/應用程序代碼。我知道安裝的基礎是不同的,但它似乎這個發展在Windows上有問題(還有mrcv包問題等)。 –

回答

0

所以,我發現是什麼原因造成的問題: 這是變通方法https://stackoverflow.com/a/25915535/3767514

提出的問題是,改變os.name=None意味着ctypes的不能使用正確的DLL加載庫。

ctypes的初始化行457:

if _os.name in ("nt", "ce"): 
windll = LibraryLoader(WinDLL) 

所以appengine_config.py改變os.name爲無前的溶液進口ctypes的:

import os 
if os.name == 'nt': 
import ctypes 
os.name = None