【问题标题】:Scipy seems impossible to get working on BeanstalkScipy 似乎不可能在 Beanstalk 上工作
【发布时间】:2017-11-04 13:57:55
【问题描述】:

我一直在尝试让 scipy 在 Beanstalk 应用程序上工作。基本上我有一个我正在开发的 python web 应用程序,它使用 Flask 和一些其他库,包括 Scipy。在我的项目目录中,我只有 3 个文件。它们是:

application.py
requirements.txt
.ebextensions/python.config

我的 application.py 文件非常简单,不包含太多可能导致我出现问题的内容,因此不会将代码粘贴到此处。我的 requirements.txt 文件包含以下内容:

Flask==0.10.1
itsdangerous==0.24
Jinja2==2.9.6
MarkupSafe==1.0
numpy==1.12.1
scipy==0.19.0
scikit-learn==0.18.1
sklearn==0.0
Werkzeug==0.12.2

我的 .ebextensions/python.config 文件包含以下内容:

packages:  
  yum:
    make: []
    gcc-c++: []
    gcc-gfortran: []
    python-devel: []
    atlas-sse3-devel: []
    lapack-devel: []
    libpng-devel: []
    freetype-devel: []
    zlib-devel: []
container_commands:  
  AddGlobalWSGIGroupAccess: 
    command: "if ! grep -q 'WSGIApplicationGroup %{GLOBAL}' ../wsgi.conf ; then echo 'WSGIApplicationGroup %{GLOBAL}' >> ../wsgi.conf; fi;"

我基本上只是设置了烧瓶应用程序并让它在本地运行,然后在我的 Mac 上使用 Elastic Beanstalk cli 尝试将我的本地应用程序发送到 Beanstalk 并让它作为网站运行。因此,在完成所有 pip 安装和 eb init 之后,我在终端中执行以下操作:

eb create flask-env

这会运行一段时间,然后失败并给出以下错误:

ERROR: Your requirements.txt is invalid. Snapshot your logs for details.
ERROR: [Instance: i-00b93584dae09f4d2] Command failed on instance. Return code: 1 Output: (TRUNCATED)...)
  File "/usr/lib64/python2.7/subprocess.py", line 541, in check_call
    raise CalledProcessError(retcode, cmd)

然后我检查了我的 eb-activity.log 文件以尝试更好地了解问题。 eb-activity.log 中有很多看起来与此错误有关的内容,但日志文件中一些最有用的错误消息如下:

File "scipy/linalg/setup.py", line 20, in configuration
          raise NotFoundError('no lapack/blas resources found')
      numpy.distutils.system_info.NotFoundError: no lapack/blas resources found

 lapack_info:
        libraries lapack not found in ['/opt/python/run/venv/lib', '/usr/local/lib64', '/usr/local/lib', '/usr/lib64', '/usr/lib']
        NOT AVAILABLE

openblas_lapack_info:
        libraries openblas not found in ['/opt/python/run/venv/lib', '/usr/local/lib64', '/usr/local/lib', '/usr/lib64', '/usr/lib']
        NOT AVAILABLE

正如您所见,日志中的这些错误消息非常冗长且难以解释。在谷歌搜索之后,我认为我的问题源于 scipy(也许还有 numpy)有一堆与 Python 无关的依赖项,而 pip 无法处理。

我认为基于其他一些答案,我发现我的.ebextensions/python.config 可以解决这个问题,但它似乎没有——它甚至没有出现在我的目录中,因为它以“.”开头。我是在做一些小错误还是什么?

更新:如果这也很重要,我正在使用 mac OS。我在 cmets 中建议的链接中发现了一些看起来很有帮助的东西,但这似乎已经过时了(根据答案中的 cmets),并且不特定于 mac OS,因此似乎有点没用。

【问题讨论】:

  • 这个答案可能会有所帮助:stackoverflow.com/a/14639949/4638378
  • 您的最后一个错误块很容易解释。信息 1:NotFoundError: no lapack/blas resources found。信息 2:library lapack not found in [places where it should be]。信息 3:libraries openblas not found in [places where it should be]。这些确实表明 lapack/blas 是 scipy 缺少的依赖项。
  • @AndrasDeak 如果您想将其发布为答案,我现在正在尝试,如果可行,将接受它!
  • 我对 beanstalk 和 mac 一无所知,坦率地说,我认为这个信息不值得代表:) 你现在可能已经找到了,但无论如何:有一些提示依赖here
  • 按照stackoverflow.com/a/14639949/4638378 的建议,您是否尝试安装lapack-develblas-devel

标签: python amazon-web-services numpy amazon-ec2 amazon-elastic-beanstalk


【解决方案1】:

您只是缺少一些依赖项。尝试在您的 Mac 上使用自制软件进行开发:

brew install numpy --with-openblas
brew install scipy --with-openblas

Theano 具有类似的依赖关系,并提供了几种在各种环境中安装的方法: http://deeplearning.net/software/theano/install_macos.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 2017-08-23
    相关资源
    最近更新 更多