Ошибка установки pip m2crypto

$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('\r\n', '\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('\r\n', '\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/`**

не удалось установить, когда я установил tierd:

ошибка: команда 'x86_64-linux-gnu-gcc' завершилась неудачно с состоянием выхода 1

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

'open', open) (файл);code=f.read().replace('\r\n', '\n');f.close();exec(скомпилировать (код, файл, 'exec')))" install --record /tmp/pip-ecxgdei0-record/install-record.txt --single-version-внешне управляемый --compile" завершился ошибкой с кодом ошибки 1 в / tmp / pip-build-ejd_4lk_ / m2crypto / `**

> Может кто-нибудь помочь мне, пожалуйста, чтобы решить эту проблему?, спасибо!

7 ответов

Решение

M2Crypto (начиная с версии 0.26) официально не поддерживает Python 3.Официально поддерживаемые версии Python:

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

У вас возникла такая же проблема, как описано в https://gitlab.com/m2crypto/m2crypto/issues/114

Вы можете узнать, какие популярные библиотеки совместимы с Python 3, по адресу http://py3readiness.org/

Мы можем использовать m2crypto на Python 3 со следующими глобальными пакетами libssl-dev swig python3-dev gcc

так

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

должно позволить установить m2crypto через PIP для Python 3 (протестировано на vwesion 0.32)

Шаги в MAC для python3.X:

Первая установка.

brew install openssl

Второй Swig

brew install swig

Изменить 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

У этого была эта ошибка на python 2.7

      sudo apt-get install python-dev

Это решает проблему для меня.

После этой установки M2Crypto

      pip install m2crypto

На Mac сделайте следующее

      $> brew install openssl
$> brew install swig

Теперь добавьте эти строки в свой~/.zshrcфайл в Mac OS X

      # this is very slow, see https://github.com/Homebrew/brew/issues/3327
# OPENSSL=$(brew --prefix openssl)
# this is much faster
# OPENSSL=$(dirname $(dirname $(which openssl)))
# hardcoding is fastest
OPENSSL=/usr/local/opt/openssl@1.1
export PATH="$OPENSSL/bin:$PATH"
export LDFLAGS="-L$OPENSSL/lib"
export CPPFLAGS="-I$OPENSSL/include"
export PKG_CONFIG_PATH="$OPENSSL/lib/pkgconfig"
export SWIG_FEATURES="-cpperraswarn -includeall -I$OPENSSL/include"

Затем в новом терминале выполните

      $> pip install m2crypto

видеть

для окон и python 3.7, 3.8, 3.9 или 3.10 см. эту ссылку

Услышать мы идем, это 100% работа

удачная установка python2.7

python2.7 -m pip установить M2Crypto

Другие вопросы по тегам