【问题标题】:"ImportError" / "undefined symbol: PyFPE_jbuf" with pymssql带有 pymssql 的“ImportError”/“未定义符号:PyFPE_jbuf”
【发布时间】:2018-08-02 15:10:06
【问题描述】:

我目前正在尝试以Zappa (Python3.6) 的形式启动 Lambda。在 AWS 端部署应用程序/配置所有内容后,我运行以下命令在本地环境中测试应用程序,

zappa invoke production script.main

得到了这个错误,

/tmp/virtualenv_name/pymssql.cpython-36m-x86_64-linux-gnu.so:未定义 符号:PyFPE_jbuf:ImportError

Traceback(最近一次调用最后一次): 文件“/var/task/handler.py”,第 509 行,在 lambda_handler 中 return LambdaHandler.lambda_handler(event, context)

文件“/var/task/handler.py”,第 237 行,在 lambda_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)

文件“冻结 importlib._bootstrap”,第 978 行,在 _gcd_import 中

文件“冻结 importlib._bootstrap”,第 961 行,在 _find_and_load 中

文件“frozen importlib._bootstrap”,第 950 行,在 _find_and_load_unlocked 中

文件“冻结 importlib._bootstrap”,第 655 行,在 _load_unlocked 中

文件“冻结 importlib._bootstrap_external>”,第 678 行,在 exec_module 中

文件“frozen importlib._bootstrap”,第 205 行,在 _call_with_frames_removed 中

文件“/tmp/virtualenv_name/script.py”,第 3 行,在 > 模块中

导入 pymssql

导入错误:/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

    我对这个错误的理解正确吗?有什么故障排除建议吗?修复?

谢谢!

【问题讨论】:

    标签: python-3.6 pymssql undefined-symbol zappa


    【解决方案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,但您可能还需要其他东西)

    【讨论】:

    • 谢谢你为我在 Anaconda 上的 Ta-lib 库救了我一命,我猜它与来自 d​​iff env 或 py 版本的缓存 numpy 发生冲突。卸载 numpy 和 Ta-lib,然后使用您建议的标志来安装它们很快解决了我的问题。
    猜你喜欢
    • 2023-04-10
    • 2016-08-28
    • 2016-07-11
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多