似乎在运行时看到的 libffi 库的版本与在编译时看到的 'ffi.h' 文件不同

it seems that the version of the libffi library seen at runtime is different from the 'ffi.h' file seen at compile-time

这个回溯搞乱了我所有的程序,我仍然无法修复它我已经尝试了所有的方法,但它没有帮助!

这是问题所在:

ffi_prep_closure(): bad user_data (it seems that the version of the libffi library seen at runtime is different from the 'ffi.h' file seen at compile-time)

它是 cffi python package issue. Try to download the source package tar.gz from https://pypi.org/project/cffi/#files 并使用以下方法手动安装它:

python setup.py install

我在自己构建 python 时在我的 Solaris 机器上遇到了同样的问题。 导出 PKG_CONFIG_PATH 已解决问题。

我刚刚进行了升级,现在错误消失了:

pip install --upgrade cffi xcffib

您可能必须在实际执行更新之前使用 su(或 sudo su),具体取决于您要定位的软件包设置。

PS:我在 Ubuntu 所以我在实际进行升级之前使用了 su

问题也可能在 python 版本 中。我正在使用 Fedora Linux,它总是比 gcloud 早一个 python 版本。所以我有 python3.10 然后我安装了 google-cloud-sdk python3.9 支持并通过添加新路径将 google-cloud-sdk 指向那个版本的 python .bashrc: export CLOUDSDK_PYTHON=python3.9

这发生在最近的一些 linux 发行版上 - PyPI 上发布的二进制轮与系统 libffi 不兼容。以下将重新安装包并在系统上本地构建它,而不使用在 PyPI 上发布的预编译二进制文件:

pip install --force-reinstall --no-binary :all: cffi

PS:可能需要安装 libffi-dev(基于 .deb 的发行版,例如 Ubuntu 或 Debian)或 libffi-devel(基于 .rpm 的发行版,例如 Fedora)在此之前。