pip install m2crypto error

Question:

$sudo pip3 install m2crypto
Collecting m2crypto
  Using cached M2Crypto-0.26.0.tar.gz
Requirement already satisfied: typing in /usr/local/lib/python3.5/dist-packages (from m2crypto)
Installing collected packages: m2crypto
  Running setup.py install for m2crypto ... error
    Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-ejd_4lk_/m2crypto/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-ecxgdei0-record/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    copying M2Crypto/BIO.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/DH.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/Rand.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/ftpslib.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/m2.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/m2xmlrpclib.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/callback.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/EC.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/m2urllib.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/X509.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/RSA.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/ASN1.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/m2crypto.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/Err.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/SMIME.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/threading.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/m2urllib2.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/BN.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/RC4.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/util.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/Engine.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/six.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/__init__.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/EVP.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/httpslib.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/AuthCookie.py -> build/lib.linux-x86_64-3.5/M2Crypto
    copying M2Crypto/DSA.py -> build/lib.linux-x86_64-3.5/M2Crypto
    creating build/lib.linux-x86_64-3.5/M2Crypto/PGP
    copying M2Crypto/PGP/RSA.py -> build/lib.linux-x86_64-3.5/M2Crypto/PGP
    copying M2Crypto/PGP/PublicKey.py -> build/lib.linux-x86_64-3.5/M2Crypto/PGP
    copying M2Crypto/PGP/PublicKeyRing.py -> build/lib.linux-x86_64-3.5/M2Crypto/PGP
    copying M2Crypto/PGP/constants.py -> build/lib.linux-x86_64-3.5/M2Crypto/PGP
    copying M2Crypto/PGP/packet.py -> build/lib.linux-x86_64-3.5/M2Crypto/PGP
    copying M2Crypto/PGP/__init__.py -> build/lib.linux-x86_64-3.5/M2Crypto/PGP
    creating build/lib.linux-x86_64-3.5/M2Crypto/SSL
    copying M2Crypto/SSL/SSLServer.py -> build/lib.linux-x86_64-3.5/M2Crypto/SSL
    copying M2Crypto/SSL/TwistedProtocolWrapper.py -> build/lib.linux-x86_64-3.5/M2Crypto/SSL
    copying M2Crypto/SSL/ssl_dispatcher.py -> build/lib.linux-x86_64-3.5/M2Crypto/SSL
    copying M2Crypto/SSL/Checker.py -> build/lib.linux-x86_64-3.5/M2Crypto/SSL
    copying M2Crypto/SSL/timeout.py -> build/lib.linux-x86_64-3.5/M2Crypto/SSL
    copying M2Crypto/SSL/Cipher.py -> build/lib.linux-x86_64-3.5/M2Crypto/SSL
    copying M2Crypto/SSL/Connection.py -> build/lib.linux-x86_64-3.5/M2Crypto/SSL
    copying M2Crypto/SSL/Context.py -> build/lib.linux-x86_64-3.5/M2Crypto/SSL
    copying M2Crypto/SSL/cb.py -> build/lib.linux-x86_64-3.5/M2Crypto/SSL
    copying M2Crypto/SSL/__init__.py -> build/lib.linux-x86_64-3.5/M2Crypto/SSL
    copying M2Crypto/SSL/Session.py -> build/lib.linux-x86_64-3.5/M2Crypto/SSL
    running build_ext
    building 'M2Crypto._m2crypto' extension
    swigging SWIG/_m2crypto.i to SWIG/_m2crypto_wrap.c
    swig -python -D__x86_64__ -I/usr/include/python3.5m -I/usr/include -I/usr/include/x86_64-linux-gnu -includeall -modern -builtin -outdir /tmp/pip-build-ejd_4lk_/m2crypto/M2Crypto -o SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i
    /usr/include/x86_64-linux-gnu/sys/cdefs.h:159: Warning 305: Bad constant value (ignored).
    /usr/include/x86_64-linux-gnu/bits/wchar.h:38: Warning 490: Fragment 'SWIG_From_wchar_t' not found.
    /usr/include/stdint.h:274: Warning 490: Fragment 'SWIG_From_wchar_t' not found.
    SWIG/_bio.i:64: Warning 454: Setting a pointer/reference variable may leak memory.
    SWIG/_rand.i:23: Warning 454: Setting a pointer/reference variable may leak memory.
    SWIG/_evp.i:184: Warning 454: Setting a pointer/reference variable may leak memory.
    SWIG/_dh.i:36: Warning 454: Setting a pointer/reference variable may leak memory.
    SWIG/_rsa.i:43: Warning 454: Setting a pointer/reference variable may leak memory.
    SWIG/_dsa.i:31: Warning 454: Setting a pointer/reference variable may leak memory.
    SWIG/_ssl.i:237: Warning 454: Setting a pointer/reference variable may leak memory.
    SWIG/_ssl.i:238: Warning 454: Setting a pointer/reference variable may leak memory.
    SWIG/_x509.i:335: Warning 454: Setting a pointer/reference variable may leak memory.
    SWIG/_pkcs7.i:44: Warning 454: Setting a pointer/reference variable may leak memory.
    SWIG/_pkcs7.i:44: Warning 454: Setting a pointer/reference variable may leak memory.
    SWIG/_util.i:11: Warning 454: Setting a pointer/reference variable may leak memory.
    SWIG/_ec.i:111: Warning 454: Setting a pointer/reference variable may leak memory.
    SWIG/_engine.i:168: Warning 454: Setting a pointer/reference variable may leak memory.
    creating build/temp.linux-x86_64-3.5
    creating build/temp.linux-x86_64-3.5/SWIG
....
At top level:
    SWIG/_m2crypto_wrap.c:3993:13: warning: ‘lock_count’ defined but not used [-Wunused-variable]
     static long lock_count[CRYPTO_NUM_LOCKS];
                 ^~~~~~~~~~
    SWIG/_m2crypto_wrap.c:3992:27: warning: ‘lock_cs’ defined but not used [-Wunused-variable]
     static PyThread_type_lock lock_cs[CRYPTO_NUM_LOCKS];
                               ^~~~~~~
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    ----------------------------------------
**`Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-ejd_4lk_/m2crypto/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-ecxgdei0-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-ejd_4lk_/m2crypto/`**

failed to install, when i tierd to install it got:

error: command ‘x86_64-linux-gnu-gcc’ failed with exit status 1

    ----------------------------------------
**`Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-ejd_4lk_/m2crypto/setup.py';f=getattr(tokenize,

‘open’, open)(file);code=f.read().replace(‘rn’,
‘n’);f.close();exec(compile(code, file, ‘exec’))” install
–record /tmp/pip-ecxgdei0-record/install-record.txt –single-version-externally-managed –compile” failed with error code 1 in /tmp/pip-build-ejd_4lk_/m2crypto/`**

> could someone help me please to fix this problem ?, thanks!

Asked By: Brother of peoples

||

Answers:

M2Crypto (as of version 0.26) does not officially support Python 3.
Officially supported Python versions are:

Programming Language :: Python :: 2.6
Programming Language :: Python :: 2.7

The issue you’re having is same as described in https://gitlab.com/m2crypto/m2crypto/issues/114#note_13223251

You can find out which popular libraries are compatible with Python 3 at http://py3readiness.org/

Answered By: vartec

We are able to use m2crypto on Python 3 with following global packages libssl-dev swig python3-dev gcc

so

sudo apt-get install libssl-dev swig python3-dev gcc

should allow install m2crypto via PIP for Python 3 (tested on version 0.32)

Answered By: Ondra

Here we go, this works 100%

apt install python2.7
python2.7 -m pip install M2Crypto
Answered By: ANDROID Vfx

Steps in MAC for python3.X:

First Install.

brew install openssl

Second Swig

brew install swig

Change the SWIG_FEATURES

env LDFLAGS="-L$(brew --prefix openssl)/lib"
CFLAGS="-I$(brew --prefix openssl)/include"
SWIG_FEATURES="-cpperraswarn -includeall -I$(brew --prefix openssl)/include"
pip install m2crypto

Answered By: Nandy

I had this error on python 2.7.

This happens when the c dependencies for python aren’t available and pip attempts to install and compile a package that has a c extension.

sudo apt-get install python-dev

This resolves it for me.

After this install M2Crypto

pip install m2crypto
Answered By: Hansa Jayathilaka

for windows and python 3.7, 3.8, 3.9 or 3.10 see this link

Answered By: Ali Fallah
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.