Ash
Ash

Reputation: 949

No module named _cffi_backend

I have Python 2.6 in my Linux rhel-5. I have installed pip and required CFFI packages. When I try to run a sample CFFI program:

ffi = FFI()

it says:

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

What could be the possible error? Did I miss something during installation? I have installed pip, wheel, pycparser, pytest and cffi.

Upvotes: 80

Views: 192482

Answers (21)

gkaur
gkaur

Reputation: 71

Ran into the same issue while creating a layer for snowflake-python-connector for arm64 using amazonlinux docker container.

About the snowflake-python-connector issue in case it helps someone - packaging the layer using docker on x86 arch gives the following error

{ "errorMessage": "Unable to import module 'lambda_function': /opt/python/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust.abi3.so: cannot open shared object file: No such file or directory", "errorType": "Runtime.ImportModuleError", "requestId": "07fc4b23-21c2-44e8-a6cd-7b918b84b9f9", "stackTrace": [] } 

And using arm64 throws the following error

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

Creating the layer as mentioned in the link here worked for me - https://repost.aws/knowledge-center/lambda-layer-simulated-docker

Upvotes: 0

mario
mario

Reputation: 1162

In Asus router the solution was:

opkg install python3-cffi

Upvotes: 0

Maheswarreddy Utukuru
Maheswarreddy Utukuru

Reputation: 522

I had the same problem. I have uninstalled the cffi and then installed it and it was solved:

pip uninstall cffi
pip install cffi

Upvotes: 11

AlaaL
AlaaL

Reputation: 343

I had the same problem, solved by

pip3.10 install cairocffi

Upvotes: 0

robe007
robe007

Reputation: 3947

I got this issue running an Ansible playbook using python 3.9 under Ubuntu-18.04 in WSL2. It was sorted by doing:

sudo apt-get remove -y python3-cffi-backend

sudo apt-get install -y python3-cffi-backend

Upvotes: 4

srhoades10
srhoades10

Reputation: 103

After many futile efforts to install the right packages, the right python versions and building the perfect layer, resorting to installing Fabric solved it for me

Upvotes: 0

normalUser
normalUser

Reputation: 179

Thanks to @MPlanchard, for his answer which helped identify the cause

In my case, the issue was related to python3.9, changing to python3.8 it just works well!

Upvotes: 0

Saurav Agrawal
Saurav Agrawal

Reputation: 101

For AWS Lambda I was facing the same issue when running on Python3.7. When I downgraded it to Python3.6, this issue was resolved.

I think this packaged might have been present in Python3.6 version and later was removed. Adding this package while making layers for AWS Lambda might resolve the problem for Python3.7.

Upvotes: 1

Mahesh Tawade
Mahesh Tawade

Reputation: 1

it worked after adding " import cffi " in my application.

please refer for more details. https://buildmedia.readthedocs.org/media/pdf/cffi/latest/cffi.pdf

Upvotes: 0

mb_atx
mb_atx

Reputation: 319

I was getting this error while trying to get the cryptography module to work with Python 3.8 for AWS Lambda.

Adding the cffi*manylinux*.whl files to my Lambda Layer (as suggested here) worked.

The cffi module comes built in for many python distributions, but not on AWS Lambda

Upvotes: 1

DvdG
DvdG

Reputation: 804

I had the same problem, following this thread https://github.com/pyca/cryptography/issues/4403, I solved the problem by reinstalling and upgrading with the command:

pip install -U cffi

Upvotes: 12

B. Latif
B. Latif

Reputation: 52

You should install cffi via pip install cffi to get the latest version. I had to restart my application for it to recognize the cffi installation.

Upvotes: 1

Jurrian
Jurrian

Reputation: 670

For me there was no way to install cffi on python3.8 because of this:

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

Somehow, the package python3-distutils does not exist in Ubuntu 16.04.

So I ended up installing python3.7 and now I finally could install cffi, fixing the problem mentioned by the TS.

Upvotes: 1

Gabe Nodarse
Gabe Nodarse

Reputation: 344

I encountered this issue when trying to install packages in a local directory using pip install -t . and then running python (2.7). My solution was to remove the -t and not install into a local directory.

Upvotes: 0

Hugues BONI
Hugues BONI

Reputation: 340

I recently had the same issue and none of the above solutions worked for me.

Here is what worked.

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

Upvotes: 14

Pavel Gromov
Pavel Gromov

Reputation: 171

You have to first remove the following packages:

cryptography
bcrypt
paramiko

Now use the following command to install:

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

Upvotes: 17

user6640657
user6640657

Reputation: 211

I needed to uninstall and install it again:

sudo pip uninstall cryptography

sudo pip uninstall paramiko

then install pagamiko again

sudo pip install paramiko

and it start to work for me

Upvotes: 21

Bhavesh Odedra
Bhavesh Odedra

Reputation: 11141

For python2.x use following command:

python -m pip install cffi

for python3.x

python3 -m pip install cffi

Upvotes: 82

Kasper
Kasper

Reputation: 11

You could look at the code L56 in /usr/lib/python2.6/site-packages/cffi/api.py

It needs the _cffi_backend.so in your pythonpath. You could install the python-cffi for it. But not sure whether it is in your RPM repo, especially you are using RHEL-5. Here is an RPM for CENTOS http://cbs.centos.org/koji/rpminfo?rpmID=20613 Hope it helps. I am still searching the source code for building the _cffi_backend.so.

Upvotes: 1

MPlanchard
MPlanchard

Reputation: 1948

Did you compile Python from source, and if so, did it give you any errors during the configure/make/make install phase? Compiling Python from source can be a real beast on older Red Hat systems, so if you installed that way, I'd suggest combing through the configure and make output to be sure that no modules were left out.

In order to get pip install cffi to succeed with no errors, I had to install gcc and libffi-devel from the EL5 repos. From there, I was able to instantiate an FFI instance with no problems:

>>> from cffi import FFI
>>> ffi = FFI()
>>>

Here's the output of pip freeze, for reference:

[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

If you've got the same or better versions of the relevant packages installed, I'd try a pip -vvv install --upgrade --force-reinstall cffi, just to see if there are perhaps errors that pip was masking, and go from there.

Upvotes: 10

Antonio
Antonio

Reputation: 21

Have the same problem. After many attempts adding import cffi solve the issue.

Make sure you have cffi and cryptography installed.

Upvotes: 2

Related Questions