模块未命名为_cffi_backend。

70

我在我的Linux rhel-5中安装了Python 2.6,已经安装了pip和所需的CFFI包。当尝试运行一个示例CFFI程序时:

ffi = FFI()

它说:

File "/usr/lib/python2.6/site-packages/cffi/api.py", line 56, in __init__
    import _cffi_backend as backend
ImportError: No module named _cffi_backend

可能出现了什么错误?我在安装过程中漏掉了什么吗?我已经安装了pip、wheel、pycparser、pytest和cffi。

19个回答

69

对于Python 2.x,请使用以下命令:

python -m pip install cffi

适用于Python 3.x

python3 -m pip install cffi

8
因为它显示已经安装,所以我不得不先卸载cffi(pip uninstall cffi),然后再重新安装。 - Thomas

20

我需要卸载并重新安装它:

sudo pip uninstall cryptography

sudo pip uninstall paramiko

然后重新安装pagamiko

sudo pip install paramiko

然后它开始对我发挥作用。


14

首先,您需要卸载以下软件包:

cryptography
bcrypt
paramiko

现在使用以下命令进行安装:

pip -vvv install --upgrade --force-reinstall cffi

这个解决方案救了我,兄弟 <3 - Farid Chowdhury
1
重新安装解决了我的问题。(在将fabric从2.x降级到1.x后遇到了这个错误) - Smittie
对我来说,只需要执行''''pip -vvv install --upgrade --force-reinstall cffi''''命令就足够了。 - undefined

13

最近我遇到了同样的问题,上面的解决方法都没用。

以下是解决方法:

sudo apt remove python3-cffi
sudo python3 -m pip install cffi

10

我的解决方案是使用Python 3.8。 - Kenan Begić

9
你是否编译了Python源代码?如果是这样,那么在“configure/make/make install”阶段是否出现任何错误呢?在旧版Red Hat系统上编译Python源代码可能会非常困难,因此如果你是用这种方式安装的,建议检查“configure”和“make”输出以确保没有遗漏任何模块。
为了使“pip install cffi”成功且没有错误,我不得不从EL5仓库中安装“gcc”和“libffi-devel”。从那里开始,我能够轻松地实例化一个FFI实例。
>>> from cffi import FFI
>>> ffi = FFI()
>>>

以下是参考的 pip freeze 的输出结果:

[root@machine ~]# pip freeze
argparse==1.2.1
autobahn==0.8.10
cffi==1.5.2
characteristic==14.3.0
pika==0.9.13
pyasn1==0.1.7
pyasn1-modules==0.0.8
pycparser==2.14
pycrypto==2.6.1
pyOpenSSL==0.12
pysnmp==4.2.5
requests==2.7.0
service-identity==14.0.0
six==1.7.3
Twisted==14.0.0
version-utils==0.2.2
wheel==0.24.0
zope.interface==4.1.1

如果您已经安装了相同或更好版本的相关软件包,我建议尝试使用 pip -vvv install --upgrade --force-reinstall cffi 命令进行重新安装,以便查看是否存在 pip 掩盖的错误,并从那里开始。

3

我曾经遇到过同样的问题。我卸载了cffi,然后重新安装它,问题就解决了:

pip uninstall cffi
pip install cffi

2

我有同样的问题。尝试多次添加“import cffi”后,问题得到了解决。

请确保您已安装cffi和cryptography。


1

对我来说,因为这个原因,在Python3.8上没有安装cffi的方法:

ImportError: cannot import name 'sysconfig' from 'distutils' (/usr/lib/python3.8/distutils/__init__.py)

在Ubuntu 16.04中,一些包如python3-distutils似乎不存在。

因此,我最终安装了python3.7,现在我终于可以安装cffi并解决TS提到的问题。


这件事情发生在我使用 Python 3.6 的 venv 上,后来我将其删除并更换为在 Ubuntu 20.04 上使用 Python 3.8 的 venv,一切正常,所有问题都解决了。你的回答启发了我尝试一个干净、彻底的解决方法。谢谢@Jurrian。 - Carles Mateo

1
您应该通过pip install cffi安装最新版本的cffi。我不得不重新启动我的应用程序,以便它能够识别cffi的安装。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接