Matplotlib与Google App Engine本地开发服务器

伊利亚·古鲁贝夫(Ilya Golubev)

我想在我的Google App Engine项目中使用matplotlib。我遵循的步骤,说明这里在官方文档。我做了什么:

1)在我的应用程序根目录中创建了一个名为lib的目录。

2)在我的应用程序根目录中创建了一个文件appengine_config.py,并在其中添加了以下几行:

from google.appengine.ext import vendor
vendor.add('lib')

3)由于文档说,matplotlib的唯一版本是1.2.0,所以我在终端中执行了以下命令:

pip install -t lib matplotlib==1.2.0

文档中还有第0步,内容为

使用pip安装库,并使用供应商模块来启用从第三方库目录中导入软件包。

但我不明白这实际上意味着什么。如果这是必不可少的,请给我解释一下这是什么意思。在stackoverflow上找到了这个答案,似乎与我所做的没什么不同。

另外,我加了

libraries:
- name: matplotlib
  version: "1.2.0"

到app.yaml。

因此,在完成所有这些步骤之后,我添加了一行

import matplotlib

到main.py并使用以下命令启动本地服务器

python ~/path/google_appengine/dev_appserver.py app.yaml

但是,当我尝试访问http:// localhost:8080 /时,会引发错误:

raise ImportError('No module named %s' % fullname)
ImportError: No module named _ctypes

如果需要,整个输出如下所示:

ERROR    2016-08-11 16:26:51,621 wsgi.py:263] 
Traceback (most recent call last):
  File "/home/magnitofon/Загрузки/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/home/magnitofon/Загрузки/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "/home/magnitofon/Загрузки/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "/home/magnitofon/realec-inspector/main.py", line 20, in <module>
    import matplotlib
  File "/home/magnitofon/realec-inspector/lib/matplotlib/__init__.py", line 151, in <module>
    from matplotlib.rcsetup import (defaultParams,
  File "/home/magnitofon/realec-inspector/lib/matplotlib/rcsetup.py", line 20, in <module>
    from matplotlib.colors import is_color_like
  File "/home/magnitofon/realec-inspector/lib/matplotlib/colors.py", line 52, in <module>
    import numpy as np
  File "/home/magnitofon/Загрузки/google_appengine/google/appengine/tools/devappserver2/python/sandbox.py", line 705, in load_module
    module = self._find_and_load_module(fullname, fullname, [module_path])
  File "/home/magnitofon/Загрузки/google_appengine/google/appengine/tools/devappserver2/python/sandbox.py", line 446, in _find_and_load_module
    return imp.load_module(fullname, source_file, path_name, description)
  File "/usr/local/lib/python2.7/dist-packages/numpy/__init__.py", line 180, in <module>
    from . import add_newdocs
  File "/usr/local/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 8, in <module>
    from .type_check import *
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/type_check.py", line 11, in <module>
    import numpy.core.numeric as _nx
  File "/usr/local/lib/python2.7/dist-packages/numpy/core/__init__.py", line 22, in <module>
    from . import _internal  # for freeze programs
  File "/usr/local/lib/python2.7/dist-packages/numpy/core/_internal.py", line 14, in <module>
    import ctypes
  File "/usr/lib/python2.7/ctypes/__init__.py", line 10, in <module>
    from _ctypes import Union, Structure, Array
  File "/home/magnitofon/Загрузки/google_appengine/google/appengine/tools/devappserver2/python/sandbox.py", line 963, in load_module
    raise ImportError('No module named %s' % fullname)
ImportError: No module named _ctypes

我究竟做错了什么?

丹·科尼莱斯库(Dan Cornilescu)

matplotlibGoogle提供的第3方库之一,因此您应该仅遵循“请求库”说明,而不要遵循安装库”说明

可悲的是他们现在都在同一文档页面上,名为使用内置图书馆在Python 2.7 -对于不了解非常混乱的vendoring技术应该用于这些库GAE内置/提供。提交的问题13202

注意:请注意“将库与本地开发服务器一起使用”部分,该部分适用于matplotlib您可能需要在系统上安装一些软件包,而不是在应用程序本身中安装某些软件包(这可能会对您在GAE上的部署产生负面影响)-开发服务器需要访问它们,而不是应用程序直接访问它们。

h,我只是在同一页上注意到了使用matplotlib部分:)

它提到:

注意:开发服务器不支持matplotlib的实验版本。您仍然可以将matplotlib添加到库列表中,但是在导入时会引发ImportError异常。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

PHP Google App Engine在本地开发服务器上上传文件

如何在Google App Engine的本地开发服务器上使用Python 3

如何获取本地开发服务器中Google云存储上载文件的公共链接(Google App Engine + JAVA)

由于 Flask 路由中的错误,在本地开发服务器中查看 Google App Engine Python 回溯

如何在Google App Engine和本地开发服务器中将服务帐户与私钥文件和模拟用户(DWD)一起使用?

您如何运行带有Google Cloud Storage客户端的Google App Engine开发服务器,所有内容都在本地模拟?

如何在Java 8模式下运行IntelliJ的Google App Engine开发服务器插件

使用App Engine开发服务器向Google API声明身份

无法使用PHP在Google App Engine开发服务器上写入文件?

Google App Engine queue.yaml在开发服务器中不起作用

Google App Engine-开发服务器上的代理/隧道权限被拒绝

使用Google App Engine开发服务器和mysql的Django Modal save()函数未实现

Google App Engine-本地Dev服务器和已部署服务器之间的区别

Google App Engine SDK更新后,无法通过PHPStorm 8运行本地服务器吗?

如何停止或禁用Google App Engine生产服务器?

Django Google App Engine服务器错误500

如何选择Google App Engine服务器的位置

Google App Engine标准环境中的gunicorn服务器

如何自动重新加载App Engine开发服务器?

获取 403 尝试调用托管在 App Engine Java 8、开发应用服务器上的 Google Cloud Endpoints API

无法通过Google App Engine上的套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器

适用于Web服务器或App Engine的Google Compute Engine

运行适用于PHP的开发网络服务器Google App引擎

Google App Engine (Flex) 使用 express 服务器和单独的 socket.io 服务器

使用SQLITE进行Google App Engine的本地Django开发吗?

Google+登录-服务器端流程-Python-Google App Engine

如何在Google App Engine Python服务器上启用CORS?

使用JMeter进行负载测试时,Google App Engine Flexible中的502服务器错误

具有自己的服务器的Google App Engine上的Wordpress