Google的App Engine(dev_appserver.py
)本地开发服务器已停止为我的一个长期运行的项目工作。项目本身可以并且已经部署成功,但是在初始化在本地开发中调用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: ''
我也遇到了this question,最近也遇到了类似的问题。这让我觉得这与开发服务器的最新更改有关。
我已经尝试将这两个软件包更新到最新的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操作系统的已知问题
您可以尝试以下解决方法
-将您的Cloud SDK降级到v260,此版本在OSX上正常运行,为此,请运行此命令
gcloud components update --version 260.0.0
-或编辑文件google / appengine / tools / devappserver2 / python / runtime / sandbox.py
为了按照本Google public case中所述从数组_WHITE_LIST_C_MODULES中删除/注释此包“ _ ctypes”,>