【发布时间】:2020-08-01 08:25:46
【问题描述】:
我正在尝试创建一个 AWS Lambda 部署包,以便将其用作 AWS Lambda 层。具体来说,我正在尝试将 ipopt sovler 与 pyomo 和 cython 结合使用。我可以毫无问题地打包 pyomo,但是当我尝试为包安装 pip install ipopt 时出现错误:
ERROR: Command errored out with exit status 1:
command: 'c:\python36\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\username\\AppData\\Local\\Temp\\pip-install-rir_unvz\\ipopt\\setup.py'"'"'; __file__='"'"'C:\\Users\\username\\AppData\\Local\\Temp\\pip-install-rir_unvz\\ipopt\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\username\AppData\Local\Temp\pip-record-d1o_oqjy\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\python36\Include\ipopt'
cwd: C:\Users\username\AppData\Local\Temp\pip-install-rir_unvz\ipopt\
Complete output (20 lines):
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.6
creating build\lib.win-amd64-3.6\ipopt
copying ipopt\ipopt_wrapper.py -> build\lib.win-amd64-3.6\ipopt
copying ipopt\version.py -> build\lib.win-amd64-3.6\ipopt
copying ipopt\__init__.py -> build\lib.win-amd64-3.6\ipopt
running build_ext
skipping 'src\cyipopt.c' Cython extension (up-to-date)
building 'ipopt.cyipopt' extension
creating build\temp.win-amd64-3.6
creating build\temp.win-amd64-3.6\Release
creating build\temp.win-amd64-3.6\Release\src
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Iinclude_mt/coin -Ic:\python36\lib\site-packages\numpy\core\include -Ic:\python36\include -Ic:\python36\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\winrt" /Tcsrc\cyipopt.c /Fobuild\temp.win-amd64-3.6\Release\src\cyipopt.obj
cyipopt.c
c:\python36\lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
src\cyipopt.c(569): fatal error C1083: Cannot open include file: 'IpStdCInterface.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2
----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\python36\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\username\\AppData\\Local\\Temp\\pip-install-rir_unvz\\ipopt\\setup.py'"'"'; __file__='"'"'C:\\Users\\username\\AppData\\Local\\Temp\\pip-install-rir_unvz\\ipopt\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\username\AppData\Local\Temp\pip-record-d1o_oqjy\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\python36\Include\ipopt' Check the logs for full command output.
我正在尝试在 AWS lambda 函数中运行 pyomo/ipopt 包。这个包不在 SDK 中,所以我读到我必须将依赖项编译成 zip,然后将 zip 上传到 lambda 函数中。
我已经做了一些研究并尝试了下面的链接,但是当我尝试 pip install ipopt 时收到错误消息 - 我在 Windows 机器上,但我也在 Linux EC2 实例上尝试过
感谢您的帮助!
https://aws.amazon.com/premiumsupport/knowledge-center/lambda-python-package-compatible/
Unable to install cvxpy into virtualenv for AWS lambda
https://medium.com/@qtangs/creating-new-aws-lambda-layer-for-python-pandas-library-348b126e9f3e
https://github.com/coin-or/Ipopt
https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html
【问题讨论】:
标签: python amazon-web-services aws-lambda virtualenv ipopt