M2Crypto ne pas installer dans venv, ou rasade ne définit __x 86_64__ qui rompt la compilation contre OpenSSL

Je suis en train d'installer Python M2Crypto paquet dans un virtualenv sur x86_64 RHEL 6.1 de la machine. Ce processus appelle gorgée, qui échoue avec l'erreur suivante:

$ virtualenv -q --no-site-packages venv
$ pip install -E venv M2Crypto==0.20.2
Downloading/unpacking M2Crypto==0.20.2
  Downloading M2Crypto-0.20.2.tar.gz (412Kb): 412Kb  downloaded
  Running setup.py egg_info for package M2Crypto
Installing collected packages: M2Crypto
  Running setup.py install for M2Crypto
    building 'M2Crypto.__m2crypto' extension
    swigging SWIG/_m2crypto.i to SWIG/_m2crypto_wrap.c
    swig -python -I/usr/include/python2.6 -I/usr/include -includeall -o SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i
    /usr/include/openssl/opensslconf.h:31: Error: CPP #error ""This openssl-devel package does not work your architecture?"". Use the -cpperraswarn option to continue swig processing.
    error: command 'swig' failed with exit status 1
    Complete output from command /home/lorin/venv/bin/python -c "import setuptools;__file__='/home/lorin/venv/build/M2Crypto/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-BFiNtU-record/install-record.txt --install-headers /home/lorin/venv/include/site/python2.6:

J'ai OpenSSL 1.0.0 installé via les paquetages RPM de RedHat.

La partie de /usr/include/openssl/opensslconf.h qui provoque l'erreur ressemble à ceci:

#if defined(__i386__)
#include "opensslconf-i386.h"
#elif defined(__ia64__)
#include "opensslconf-ia64.h"
#elif defined(__powerpc64__)
#include "opensslconf-ppc64.h"
#elif defined(__powerpc__)
#include "opensslconf-ppc.h"
#elif defined(__s390x__)
#include "opensslconf-s390x.h"
#elif defined(__s390__)
#include "opensslconf-s390.h"
#elif defined(__sparc__) && defined(__arch64__)
#include "opensslconf-sparc64.h"
#elif defined(__sparc__)
#include "opensslconf-sparc.h"
#elif defined(__x86_64__)
#include "opensslconf-x86_64.h"
#else
#error "This openssl-devel package does not work your architecture?"
#endif

gcc a le droit variable définie:

$ echo | gcc -E -dM - | grep x86_64
#define __x86_64 1
#define __x86_64__ 1

Mais apparenty rasade ne l'est pas, puisque c'est la ligne qui ne fonctionne pas:

swig -python -I/usr/include/python2.6 -I/usr/include -includeall -o \
  SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i

Est-il un moyen de résoudre ce problème en changeant quelque chose dans la configuration de mon système? M2Crypto est installé dans un virtualenv dans le cadre d'un script je n'ai pas le contrôle, afin d'éviter de déblayage autour de avec la M2Crypto fichiers serait une bonne chose.

  • Il y a fedora_setup.sh mais il nécessite un nettoyage autour de la M2Crypto fichiers.
  • Pas familier avec cela, pouvez-vous fournir plus de détails dans une réponse complète?