我目前正在尝试将Lambda作为Zappa(Python3.6)启动。部署应用程序/配置AWS端的所有内容后,我运行以下命令在本地环境中测试应用程序,
zappa invoke production script.main
得到了这个错误,
/tmp/virtualenv_name/pymssql.cpython-36m-x86_64-linux-gnu.so:undefined 符号:PyFPE_jbuf:ImportError
追踪(最近一次通话): 在lambda_handler中输入文件“/var/task/handler.py”,第509行 返回LambdaHandler.lambda_handler(事件,上下文)
文件“/var/task/handler.py”,第237行,在lambda_handler中 handler = cls()
文件“/var/task/handler.py”,第129行,在 init 中 self.app_module = importlib.import_module(self.settings.APP_MODULE)
文件“/var/lang/lib/python3.6/importlib/init.py”,第126行,在> import_module中 return _bootstrap._gcd_import(name [level:],package,level)
文件“frozen importlib._bootstrap”,第978行,在_gcd_import中
文件“frozen importlib._bootstrap”,第961行,在_find_and_load中
文件“frozen importlib._bootstrap”,第950行,在_find_and_load_unlocked中
文件“frozen importlib._bootstrap”,第655行,在_load_unlocked中
文件“frozen importlib._bootstrap_external>”,第678行,exec_module
文件“frozen importlib._bootstrap”,第205行,在_call_with_frames_removed
文件“/tmp/virtualenv_name/script.py”,第3行,>模块
导入pymssql
ImportError:/tmp/virtualenv_name/pymssql.cpython-36m-x86_64-linux-gnu.so: 未定义的符号:PyFPE_jbuf
我读过的PyFPE_jbuf
的大多数问题似乎涉及到某种依赖关系的多次安装,但这些解决方案似乎都不适用于此。到目前为止,我已经尝试过了,
zappa update
。zappa update
的其他包/库。在我的虚拟环境中卸载并重新安装cython,并运行zappa update
。
我对这个错误的理解是否正确?任何疑难解答建议?修复
谢谢!
答案 0 :(得分:1)
我在尝试在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
,但您可能还需要其他内容)