Установите Scrapy на OS X El Capitan

Я пытался установить Scrapy на El Capitan, но пока не увенчался успехом. Это происходит, когда я использую pip install Scrapy:

#include <openssl/opensslv.h>

         ^

1 error generated.

error: command 'cc' failed with exit status 1

----------------------------------------
Cleaning up...
Command /<scrapy_project>/venv/bin/python -c "import setuptools, tokenize;__file__='/<scrapy_project>/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 /<scrapy_project>/venv/include/site/python2.7 failed with error code 1 in /<scrapy_project>/venv/build/cryptography

Мои командные инструменты Xcode и Xcode обновлены. Я пытался установить Scrapy с помощью и без подхода через доморощенный в соответствии с http://doc.scrapy.org/en/latest/intro/install.html

Изменить: я сделал следующее:

  • brew install openssl && brew link openssl --force в соответствии с предложением Крейсерджек
  • pip install cryptography
  • pip install scrapy

все работало без ошибок. Но scrapy --version выдает эту ошибку:

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

1 ответ

Решение

Проблема здесь с установкой зависимостей, необходимых для Scrapy

Прежде всего, вам следует перейти на последнюю версию pip:

pip install --upgrade pip

Если это не сработает, чтобы построить криптографию и динамически связать ее:

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

дополнительную информацию об установке можно найти в документации по криптографии.

Другие проблемы могут быть решены с помощью команды

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

Это не должно быть необходимым, однако, если все ваше программное обеспечение (последние pip и криптография), обновлено. Больше по этой проблеме можно найти в выпусках в репозитории криптографии на github

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