Instala Scrapy en OS X El Capitan

Intenté instalar Scrapy en El Capitán, pero aún no he tenido éxito. Esto sucede cuando uso pip install Scrapy :

 #include  ^ 1 error generated. error: command 'cc' failed with exit status 1 ---------------------------------------- Cleaning up... Command //venv/bin/python -c "import setuptools, tokenize;__file__='//venv/build/cryptography/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/p6/jvf54l7d5c7dntzm6d3rfc3w0000gn/T/pip-D2QIZq-record/install-record.txt --single-version-externally-managed --compile --install-headers //venv/include/site/python2.7 failed with error code 1 in //venv/build/cryptography 

Mis herramientas de comando Xcode y Xcode están actualizadas. Intenté instalar Scrapy con y sin el enfoque a través de homebrew según http://doc.scrapy.org/en/latest/intro/install.html#intro-install

Edit: hice lo siguiente:

  • brew install openssl && brew link openssl --force – fuerza de acuerdo con la sugerencia de Craicerjack
  • pip install cryptography
  • pip install scrapy

Todos trabajaron sin errores. Pero scrapy --version lanza este error:

 ImportError: dlopen(//venv/lib/python2.7/site-packages/cryptography/hazmat/bindings/_openssl.so, 2): Symbol not found: _BIO_new_CMS Referenced from: //venv/lib/python2.7/site-packages/cryptography/hazmat/bindings/_openssl.so Expected in: flat namespace in //venv/lib/python2.7/site-packages/cryptography/hazmat/bindings/_openssl.so 

El problema aquí es con la instalación de las dependencias necesarias para Scrapy

En primer lugar, debe actualizar a la última versión de pip:

 pip install --upgrade pip 

Si eso no funciona, para construir criptografía y vincularlo dinámicamente:

 brew install openssl env LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include" pip install cryptography 

Puede encontrar más información sobre la instalación en los documentos de criptografía.

Otros problemas pueden resolverse usando el comando

 LDFLAGS="-L/usr/local/opt/openssl/lib" pip install cryptography --no-use-wheel 

Sin embargo, esto no debería ser necesario si todo su software (el último pip y la criptografía) está actualizado. Puede encontrar más información sobre este tema en los temas del repository de criptografía en github