Scipy似乎不可能在Beanstalk上工作

时间:2017-06-03 06:32:29

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

我一直在尝试使用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会解决这个问题但似乎没有 - 它甚至不会出现在我的目录中,因为它以'开头。&# 39 ;.我做了一些小错误或者什么?

更新:如果重要的话,我在mac OS上。我发现一些看起来对评论中建议的链接有帮助的东西,但这似乎过时了(根据答案的评论)而不是特定于mac OS,因此似乎没用。

1 个答案:

答案 0 :(得分:1)

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

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

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