带有pymssql

时间:2018-02-22 16:50:50

标签: python-3.6 pymssql undefined-symbol zappa

我目前正在尝试将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的大多数问题似乎涉及到某种依赖关系的多次安装,但这些解决方案似乎都不适用于此。到目前为止,我已经尝试过了,

  1. 在我的虚拟环境中卸载并重新安装pymssql,然后运行zappa update
  2. 取消安装并重新安装包含pymssql(如sqlalchemy)并运行zappa update的其他包/库。
  3. 取消部署项目,执行1和2,然后重新部署它。
  4. 在我的虚拟环境中卸载并重新安装cython,并运行zappa update

    我对这个错误的理解是否正确?任何疑难解答建议?修复

  5. 谢谢!

1 个答案:

答案 0 :(得分:1)

我在尝试在anaconda环境中安装dragnetspacy时遇到了类似的问题。我相信pip install使用的是使用其他gcc版本编译的缓存文件。什么解决了我的问题是卸载库,然后使用--no-cache-dir标志重新安装它,例如。 pip install dragnet --no-cache-dir通过为新环境运行setup.py从头开始构建软件包。

另请注意,您可能需要运行sudo apt install libxml2-dev libxslt-dev python-dev才能使构建成功(至少对于dragnetspacy,但您可能还需要其他内容)