导入 scipy.optimize 时应用程序超时
Posted
技术标签:
【中文标题】导入 scipy.optimize 时应用程序超时【英文标题】:Application times out when importing scipy.optimize 【发布时间】:2014-04-21 12:09:18 【问题描述】:我正在尝试在 AWS Elastic Beanstalk 上启动 Python Flask 应用程序。一切正常,直到我将此行添加到我的模块之一:
import scipy.optimize
如果我添加该行,我会在错误日志中收到以下消息:
Script timed out before returning headers: application.py
我相信 SciPy 已正确安装,因为我已通过 SSH 连接到 EC2 实例并确认它在 /opt/python/run/venv/lib/python2.7/site-packages
中列出
在虚拟环境仍然激活的情况下,我还运行了一个使用 SciPy 功能的简单脚本,它运行良好。我还确认使用了 Python 2.7.5。
使用from scipy import optimize
而不是import scipy.optimize
会导致同样的错误。
有人知道是什么导致了这个错误或如何解决它吗?
【问题讨论】:
你有可以链接到的 requirements.txt 吗?你也在使用 numpy 吗? 你试过在详细模式下运行 python 吗?例如。python -v -c 'import scipy.optimize'
scipy.optimize
是否仅在处理请求时导入?在应用程序启动期间导入它会有所帮助吗?如果不是这种情况 - 目前尚不清楚超时实际来自何处。
【参考方案1】:
来自这里的一个帖子:https://groups.google.com/forum/#!topic/web2py/TmGDM35jOJ8
有人建议: 添加以下行
WSGIApplicationGroup %GLOBAL
到 apache2/conf/httpd.conf 并重启 apache。
或者,我已经成功地做到了这一点
from scipy.optimize import fmin_cg
来自弹性 beantalk 中的 wsgi 应用程序。也许具体说明您的需求会加快导入时间。
【讨论】:
AFAIK 做from scipy.optimize import fmin_cg
根本不会提高性能。 Python 仍然需要加载scipy
和optimize
,然后从optimize
中提取fmin_cg
。【参考方案2】:
这个错误是因为导入指定的模块花费的时间比环境允许的要长。您要么必须限制导入的功能数量(推荐),要么手动增加允许导入的最长时间。
【讨论】:
以上是关于导入 scipy.optimize 时应用程序超时的主要内容,如果未能解决你的问题,请参考以下文章
当您想与目标函数一起计算梯度时,如何使用 scipy.optimize.minimize 函数?
尝试 MLE 拟合 Weibull 分布时 scipy.optimize.minimize 中的 RuntimeWarning
scipy.optimize._trlib._trlib.array' 使用 pyinstaller 时没有属性 '__reduce_cython__'
scipy.optimize.fmin和scipy.optimize.minimize之间的区别
金融量化系列优化问题在构建投资组合时的应用(利用scipy.optimize.minimize构建满足条件的最优投资组合)