这个回溯搞乱了我所有的程序,我仍然无法修复它,我已经尝试了所有方法,但没有帮助!
问题来了:
ffi_prep_closure(): bad user_data (看来是这个版本 运行时看到的 libffi 库与看到的“ffi.h”文件不同 在编译时)
这种情况发生在最近的一些 Linux 发行版上 - PyPI 上发布的二进制轮与系统 libffi 不兼容。以下将重新安装该包并在系统上本地构建它,而不使用 PyPI 上发布的预编译二进制文件:
pip install --force-reinstall --no-binary :all: cffi
PS:在此之前可能需要安装
libffi-dev
(基于 .deb 的发行版,例如 Ubuntu 或 Debian)或 libffi-devel
(基于 .rpm 的发行版,例如 Fedora)。
问题也可能出在 python 版本中。我使用的是 Fedora Linux,它总是比
gcloud
早一个 python 版本。所以我有python3.10
,然后我安装了google-cloud-sdk
python3.9
支持,并通过添加到.bashrc
的新路径将google-cloud-sdk指向该版本的python:export CLOUDSDK_PYTHON=python3.9
我刚刚进行了升级,现在错误消失了:
pip install --upgrade cffi xcffib
在实际进行更新之前,您可能必须使用
su
(或 sudo su
),具体取决于您想要定位的软件包设置。
PS:我使用的是 Ubuntu,所以在实际升级之前我使用了
su
这是 cffi python 包问题。尝试从https://pypi.org/project/cffi/#files下载源码包tar.gz并使用以下命令手动安装:
python setup.py install
在构建 python 本身时,我在 Solaris 机器上遇到了同样的问题。 导出
PKG_CONFIG_PATH
已经解决了这个问题。