首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dev_appserver.py app.yaml produces: ImportError:导入多数组numpy扩展模块失败

dev_appserver.py app.yaml produces: ImportError:导入多数组numpy扩展模块失败
EN

Stack Overflow用户
提问于 2018-09-26 01:13:47
回答 2查看 217关注 0票数 2

我运行以下命令:

代码语言:javascript
复制
dev_appserver.py app.yaml

我得到了一个错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:\Users\sehrlich\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\runtime\wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "C:\Users\sehrlich\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\runtime\wsgi.py", line 299, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "C:\Users\sehrlich\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\runtime\wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "C:\Users\sehrlich\Desktop\ToolKit\Application Projects\Tableau Web Data Connector Improvement\tableauextensions\main.py", line 2, in <module>
    from Get_Data import get_data, build_connection, run_sql
  File "C:\Users\sehrlich\Desktop\ToolKit\Application Projects\Tableau Web Data Connector Improvement\tableauextensions\Get_Data.py", line 1, in <module>
    import numpy as np
  File "C:\Users\sehrlich\Desktop\ToolKit\Application Projects\Tableau Web Data Connector Improvement\tableauextensions\lib\numpy\__init__.py", line 142, in <module>
    from . import add_newdocs
  File "C:\Users\sehrlich\Desktop\ToolKit\Application Projects\Tableau Web Data Connector Improvement\tableauextensions\lib\numpy\add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "C:\Users\sehrlich\Desktop\ToolKit\Application Projects\Tableau Web Data Connector Improvement\tableauextensions\lib\numpy\lib\__init__.py", line 8, in <module>
    from .type_check import *
  File "C:\Users\sehrlich\Desktop\ToolKit\Application Projects\Tableau Web Data Connector Improvement\tableauextensions\lib\numpy\lib\type_check.py", line 11, in <module>
    import numpy.core.numeric as _nx
  File "C:\Users\sehrlich\Desktop\ToolKit\Application Projects\Tableau Web Data Connector Improvement\tableauextensions\lib\numpy\core\__init__.py", line 26, in <module>
    raise ImportError(msg)
ImportError:
Importing the multiarray numpy extension module failed.  Most
likely you are trying to import a failed build of numpy.
If you're working with a numpy git repo, try `git clean -xdf` (removes all
files not under version control).  Otherwise reinstall numpy.

我已经安装并卸载了NumPy。当我运行像这样的东西时,他们的应用程序运行良好

代码语言:javascript
复制
python -m flask run 

而且它使用NumPy也没问题。找不到问题出在哪里。

EN

回答 2

Stack Overflow用户

发布于 2018-09-26 18:59:02

正如Dan Cornilescu所说,GAE标准不能使用使用C [1] [2]编译的代码的库

从1开始,您可以使用不带C扩展的纯

代码的第三方库

从2开始,解释器不能使用C代码加载Python服务;它是一个“纯”Python环境。

Python就是其中之一,你可以在他们的Git Repo [3]和维基百科[4] (用NumPy,C编写)中看到它。另外,检查此SO question的第一个答案。

奇怪的是,我在NumPy上发现了一个仅基于“纯”Python的版本,称为"TinyNumPy“[5],可以在GAE标准中使用。根据他们的Git Repo,这是它的局限性:

不能对

  • ndarray.flat迭代器进行索引(它是generator).
  • No对order.
  • Support的一种支持,对于仅限于bool、uin8、uint16、uint32、uint64、int8、int16、int32、int64、float32、Fortran的数据类型,计算数据统计信息的迭代器要慢得多,因为迭代通过切片在Fortran中进行通常是相当快的,但是如果步长是bool,则可能会很慢

简而言之,要么使用GAE Flex,要么尽量避免使用NumPy。

票数 2
EN

Stack Overflow用户

发布于 2018-09-26 23:10:28

既然您想要使用GAE提供的numpy,那么:

  • 你不应该在你的应用程序代码中安装它(回溯表明它是从应用程序的lib目录中运行的,这里是提供的库的位置)
  • 你应该在你的app.yamllibraries部分请求它:

Using built-in bundled libraries with the local development server:- name: numpy version:“1.6.1”

  • 您还应该在本地系统上安装所请求的numpy版本(但不在应用程序目录中),以便开发服务器可以使用它,因为numpy是其中一个具有此类要求的库,请参见numpy

运行库提供的许多内置库都可自动用于本地开发服务器。但是,必须先在本地安装以下内置库,然后才能在本地开发服务器上使用它们:

..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52503620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档