Google App Engine Python2.7 本地开发初始化ctypes依赖库失败
Google App Engine Python2.7 local development fails to initialize ctypes dependent libraries
用于 App Engine (dev_appserver.py
) 的 Google 本地开发服务器已停止为我的长期 运行 项目之一工作。项目本身可以并且已经部署没有问题,但在初始化模块(numpy
和 PIL
)时抛出错误,这些模块在本地开发中调用 ctypes
。收到的错误如下所示:
import numpy as np
File "/Users/dev/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py", line 894, in load_module
module = self._find_and_load_module(fullname, fullname, [module_path])
File "/Users/dev/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py", line 605, in _find_and_load_module
return imp.load_module(fullname, source_file, path_name, description)
File "/opt/miniconda3/envs/app-api/lib/python2.7/site-packages/numpy/__init__.py", line 142, in <module>
from . import core
File "/opt/miniconda3/envs/app-api/lib/python2.7/site-packages/numpy/core/__init__.py", line 95, in <module>
from . import numeric
File "/opt/miniconda3/envs/app-api/lib/python2.7/site-packages/numpy/core/numeric.py", line 39, in <module>
from ._internal import TooHardError, AxisError
File "/opt/miniconda3/envs/app-api/lib/python2.7/site-packages/numpy/core/_internal.py", line 17, in <module>
import ctypes
File "/opt/miniconda3/envs/app-api/lib/python2.7/ctypes/__init__.py", line 29, in <module>
if int(_os.uname()[2].split('.')[0]) < 8:
ValueError: invalid literal for int() with base 10: ''
我也遇到了最近遇到类似问题的 。这让我觉得这与开发服务器最近的变化有关。
我已经尝试将这两个软件包更新到最新的 2.7 版本,并将它们降级到 GAE 支持的版本(numpy==1.6.1
和 PIL==1.1.7
)。此外,如另一个问题中所述,从 app.yaml
文件中删除模块似乎没有任何区别。用于部署的 app.yaml
文件如下所示:
libraries:
- name: PIL
version: "1.1.7"
- name: numpy
version: "1.6.1"
是否有人知道与使用这些库的开发服务器有关的更改?
这是一个已知问题,仅影响非 linux OS
您可以尝试以下解决方法
-- 将您的 Cloud SDK 降级到 v260,此版本在 OSX 上运行良好,为此请 运行 此命令
gcloud components update --version 260.0.0
-- 或者编辑文件google/appengine/tools/devappserver2/python/runtime/sandbox.py
为了remove/comment这个包'_ctypes'来自数组_WHITE_LIST_C_MODULES,如Google public case
用于 App Engine (dev_appserver.py
) 的 Google 本地开发服务器已停止为我的长期 运行 项目之一工作。项目本身可以并且已经部署没有问题,但在初始化模块(numpy
和 PIL
)时抛出错误,这些模块在本地开发中调用 ctypes
。收到的错误如下所示:
import numpy as np
File "/Users/dev/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py", line 894, in load_module
module = self._find_and_load_module(fullname, fullname, [module_path])
File "/Users/dev/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py", line 605, in _find_and_load_module
return imp.load_module(fullname, source_file, path_name, description)
File "/opt/miniconda3/envs/app-api/lib/python2.7/site-packages/numpy/__init__.py", line 142, in <module>
from . import core
File "/opt/miniconda3/envs/app-api/lib/python2.7/site-packages/numpy/core/__init__.py", line 95, in <module>
from . import numeric
File "/opt/miniconda3/envs/app-api/lib/python2.7/site-packages/numpy/core/numeric.py", line 39, in <module>
from ._internal import TooHardError, AxisError
File "/opt/miniconda3/envs/app-api/lib/python2.7/site-packages/numpy/core/_internal.py", line 17, in <module>
import ctypes
File "/opt/miniconda3/envs/app-api/lib/python2.7/ctypes/__init__.py", line 29, in <module>
if int(_os.uname()[2].split('.')[0]) < 8:
ValueError: invalid literal for int() with base 10: ''
我也遇到了最近遇到类似问题的
我已经尝试将这两个软件包更新到最新的 2.7 版本,并将它们降级到 GAE 支持的版本(numpy==1.6.1
和 PIL==1.1.7
)。此外,如另一个问题中所述,从 app.yaml
文件中删除模块似乎没有任何区别。用于部署的 app.yaml
文件如下所示:
libraries:
- name: PIL
version: "1.1.7"
- name: numpy
version: "1.6.1"
是否有人知道与使用这些库的开发服务器有关的更改?
这是一个已知问题,仅影响非 linux OS
您可以尝试以下解决方法
-- 将您的 Cloud SDK 降级到 v260,此版本在 OSX 上运行良好,为此请 运行 此命令
gcloud components update --version 260.0.0
-- 或者编辑文件google/appengine/tools/devappserver2/python/runtime/sandbox.py
为了remove/comment这个包'_ctypes'来自数组_WHITE_LIST_C_MODULES,如Google public case