我目前正在尝试将Lambda作为Zappa(Python3.6)启动。在部署应用程序/在AWS端配置所有内容后,我运行以下命令在本地环境中测试该应用程序
zappa invoke production script.main
得到这个错误,
/tmp/virtualenv_name/pymssql.cpython-36m-x86_64-linux-gnu.so:未定义symbol:PyFPE_jbuf:ImportError
追踪(最近一次通话):文件"/var/task/handler.py",第509行,在lambda_handler中return LambdaHandler.lambda_handler(事件、上下文)
文件"/var/task/handler.py",第237行,在lambda_handler中handler=cls()
文件"/var/task/handler.py",第129行,在initself.app_module=importlib.import_module(self.settings.app_module)中
文件"/var/lang/lib/python3.6/importlib/init.py",第126行,在>import_module中return bootstrap_gcd_import(名称[级别:],包,级别)
_gcd_import 中的文件"冻结的importlib_bootstrap",第978行
文件"冻结的importlib_bootstrap",第961行,在_find_and_load 中
文件"冻结的importlib_bootstrap",第950行,在_find_and_load_unlocked 中
文件"冻结的importlib_bootstrap",第655行,在_load_unlocked 中
exec_module 中的文件"冻结的importlib_bootstrap_external>",第678行
_call_with_frames_removed 中的文件"冻结的importlib_bootstrap",第205行
文件"/tmp/virtualenv_name/script.py",第3行,在>模块中
导入pymssql
导入错误:/tmp/virtualenv_name/pymssql.cpython-36m-x86_64-linux-gnu.so:未定义符号:PyFPE_jbuf
我读到的PyFPE_jbuf
的大多数问题似乎都涉及到某个依赖项的多个安装,但似乎没有一个解决方案适用于此。到目前为止我已经试过了,
- 在我的虚拟环境中卸载并重新安装pymssql,并运行
zappa update
- 卸载并重新安装包含pymssql的其他包/库(如sqlalchemy),并运行
zappa update
- 取消部署项目,执行1和2,然后重新部署
-
在我的虚拟环境中卸载和重新安装cython,并运行
zappa update
。我对这个错误的理解正确吗?有什么故障排除建议吗?修复?
谢谢!
我在anaconda环境中尝试安装dragnet
和spacy
时遇到了类似的问题。我相信pip install
使用的是一个缓存文件,该文件是使用另一个gcc
版本编译的。解决我问题的方法是卸载库,然后使用--no-cache-dir
标志重新安装它,例如pip install dragnet --no-cache-dir
,它通过为新环境运行setup.py
从头开始构建包。
还要注意,您可能需要运行sudo apt install libxml2-dev libxslt-dev python-dev
才能成功构建(至少对于dragnet
和spacy
,但您可能需要其他东西)