it-swarm.com.ru

Не удалось установить пакет Python Cryptography с PIP и setup.py

Когда я пытаюсь установить пакет Cryptography для Python через pip install cryptography или загрузив пакет с их сайта и запустив python setup.py, я получаю следующую ошибку:


D:\Anaconda\Scripts\pip-script.py run on 02/27/14 16:13:17
Downloading/unpacking cryptography
  Getting page https://pypi.python.org/simple/cryptography/
  URLs to search for versions for cryptography:
  * https://pypi.python.org/simple/cryptography/
  Analyzing links from page https://pypi.python.org/simple/cryptography/
    Skipping https://pypi.python.org/packages/cp26/c/cryptography/cryptography-0.2-cp26-none-win32.whl#md5=13e5c4b19520e7dc6f07c6502b3f74e2 (from https://pypi.python.org/simple/cryptography/) because it is not compatible with this Python
    Skipping https://pypi.python.org/packages/cp26/c/cryptography/cryptography-0.2.1-cp26-none-win32.whl#md5=00e733648ee5cdb9e58876238b1328f8 (from https://pypi.python.org/simple/cryptography/) because it is not compatible with this Python
    Skipping https://pypi.python.org/packages/cp27/c/cryptography/cryptography-0.2-cp27-none-win32.whl#md5=013ccafa6a5a3ea92c73f2c1c4879406 (from https://pypi.python.org/simple/cryptography/) because it is not compatible with this Python
    Skipping https://pypi.python.org/packages/cp27/c/cryptography/cryptography-0.2.1-cp27-none-win32.whl#md5=127d6a5dc687250721f892d55720a06c (from https://pypi.python.org/simple/cryptography/) because it is not compatible with this Python
    Skipping https://pypi.python.org/packages/cp32/c/cryptography/cryptography-0.2-cp32-none-win32.whl#md5=051424a36e91039807b72f112333ded3 (from https://pypi.python.org/simple/cryptography/) because it is not compatible with this Python
    Skipping https://pypi.python.org/packages/cp32/c/cryptography/cryptography-0.2.1-cp32-none-win32.whl#md5=53f6f57db8e952d64283baaa14cbde3d (from https://pypi.python.org/simple/cryptography/) because it is not compatible with this Python
    Skipping https://pypi.python.org/packages/cp33/c/cryptography/cryptography-0.2-cp33-none-win32.whl#md5=302812c1c1a035cf9ba3292f8dbf3f9e (from https://pypi.python.org/simple/cryptography/) because it is not compatible with this Python
    Skipping https://pypi.python.org/packages/cp33/c/cryptography/cryptography-0.2.1-cp33-none-win32.whl#md5=81acca90caf8a45f2ca73f3f9859fae4 (from https://pypi.python.org/simple/cryptography/) because it is not compatible with this Python
    Found link https://pypi.python.org/packages/source/c/cryptography/cryptography-0.1.tar.gz#md5=bdc1c5fe069deca7467b71a0cc538f17 (from https://pypi.python.org/simple/cryptography/), version: 0.1
    Found link https://pypi.python.org/packages/source/c/cryptography/cryptography-0.2.1.tar.gz#md5=872fc04268dadc66a0305ae5ab1c123b (from https://pypi.python.org/simple/cryptography/), version: 0.2.1
    Found link https://pypi.python.org/packages/source/c/cryptography/cryptography-0.2.tar.gz#md5=8a3d21e837a21e1b7634ee1f22b06bb6 (from https://pypi.python.org/simple/cryptography/), version: 0.2
  Using version 0.2.1 (newest of versions: 0.2.1, 0.2, 0.1)
  Downloading from URL https://pypi.python.org/packages/source/c/cryptography/cryptography-0.2.1.tar.gz#md5=872fc04268dadc66a0305ae5ab1c123b (from https://pypi.python.org/simple/cryptography/)
  Running setup.py (path:c:\users\paco\appdata\local\temp\pip_build_Paco\cryptography\setup.py) Egg_info for package cryptography
    In file included from c/_cffi_backend.c:7:0:
    c/misc_win32.h:225:23: error: two or more data types in declaration specifiers
    c/misc_win32.h:225:1: warning: useless type name in empty declaration [enabled by default]
    c/_cffi_backend.c: In function 'convert_array_from_object':
    c/_cffi_backend.c:1105:26: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1105:26: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c:1130:30: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1130:30: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c:1150:30: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1150:30: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c: In function 'convert_struct_from_object':
    c/_cffi_backend.c:1183:26: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1183:26: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c:1196:30: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1196:30: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c: In function 'cdata_repr':
    c/_cffi_backend.c:1583:13: warning: unknown conversion type character 'L' in format [-Wformat]
    c/_cffi_backend.c:1583:13: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c:1595:9: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1595:9: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c: In function 'cdataowning_repr':
    c/_cffi_backend.c:1647:30: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1647:30: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c: In function '_cdata_get_indexed_ptr':
    c/_cffi_backend.c:1820:26: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1820:26: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1820:26: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c: In function '_cdata_getslicearg':
    c/_cffi_backend.c:1872:26: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1872:26: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1872:26: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c: In function 'cdata_ass_slice':
    c/_cffi_backend.c:1951:26: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1951:26: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1951:26: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c:1969:30: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1969:30: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1969:30: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c:1983:22: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1983:22: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c: In function 'cdata_call':
    c/_cffi_backend.c:2367:30: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:2367:30: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'Py_ssize_t' [-Wformat]
    c/_cffi_backend.c:2367:30: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c: In function 'cast_to_integer_or_char':
    c/_cffi_backend.c:2916:26: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:2916:26: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'Py_ssize_t' [-Wformat]
    c/_cffi_backend.c:2916:26: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c:2928:26: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:2928:26: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'Py_ssize_t' [-Wformat]
    c/_cffi_backend.c:2928:26: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c: In function 'new_array_type':
    c/_cffi_backend.c:3480:9: warning: unknown conversion type character 'l' in format [-Wformat]
    c/_cffi_backend.c:3480:9: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c: In function 'b_complete_struct_or_union':
    c/_cffi_backend.c:3878:22: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:3878:22: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:3878:22: warning: too many arguments for format [-Wformat-extra-args]
    Traceback (most recent call last):
      File "<string>", line 17, in <module>
      File "c:\users\paco\appdata\local\temp\pip_build_Paco\cryptography\setup.py", line 113, in <module>
        "build": cffi_build,
      File "D:\Anaconda\lib\distutils\core.py", line 112, in setup
        _setup_distribution = dist = klass(attrs)
      File "build\bdist.win-AMD64\Egg\setuptools\dist.py", line 239, in __init__
      File "build\bdist.win-AMD64\Egg\setuptools\dist.py", line 264, in fetch_build_eggs
      File "build\bdist.win-AMD64\Egg\pkg_resources.py", line 580, in resolve
        dist = best[req.key] = env.best_match(req, ws, installer)
      File "build\bdist.win-AMD64\Egg\pkg_resources.py", line 818, in best_match
        return self.obtain(req, installer) # try and download/install
      File "build\bdist.win-AMD64\Egg\pkg_resources.py", line 830, in obtain
        return installer(requirement)
      File "build\bdist.win-AMD64\Egg\setuptools\dist.py", line 314, in fetch_build_Egg
      File "build\bdist.win-AMD64\Egg\setuptools\command\easy_install.py", line 593, in easy_install

      File "build\bdist.win-AMD64\Egg\setuptools\command\easy_install.py", line 623, in install_item

      File "build\bdist.win-AMD64\Egg\setuptools\command\easy_install.py", line 809, in install_eggs

      File "build\bdist.win-AMD64\Egg\setuptools\command\easy_install.py", line 1015, in build_and_install

      File "build\bdist.win-AMD64\Egg\setuptools\command\easy_install.py", line 1003, in run_setup

    distutils.errors.DistutilsError: Setup script exited with error: command 'gcc' failed with exit status 1
    Complete output from command python setup.py Egg_info:
    In file included from c/_cffi_backend.c:7:0:

c/misc_win32.h:225:23: error: two or more data types in declaration specifiers

c/misc_win32.h:225:1: warning: useless type name in empty declaration [enabled by default]

c/_cffi_backend.c: In function 'convert_array_from_object':

c/_cffi_backend.c:1105:26: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1105:26: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c:1130:30: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1130:30: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c:1150:30: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1150:30: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c: In function 'convert_struct_from_object':

c/_cffi_backend.c:1183:26: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1183:26: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c:1196:30: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1196:30: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c: In function 'cdata_repr':

c/_cffi_backend.c:1583:13: warning: unknown conversion type character 'L' in format [-Wformat]

c/_cffi_backend.c:1583:13: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c:1595:9: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1595:9: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c: In function 'cdataowning_repr':

c/_cffi_backend.c:1647:30: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1647:30: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c: In function '_cdata_get_indexed_ptr':

c/_cffi_backend.c:1820:26: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1820:26: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1820:26: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c: In function '_cdata_getslicearg':

c/_cffi_backend.c:1872:26: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1872:26: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1872:26: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c: In function 'cdata_ass_slice':

c/_cffi_backend.c:1951:26: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1951:26: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1951:26: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c:1969:30: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1969:30: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1969:30: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c:1983:22: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1983:22: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c: In function 'cdata_call':

c/_cffi_backend.c:2367:30: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:2367:30: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'Py_ssize_t' [-Wformat]

c/_cffi_backend.c:2367:30: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c: In function 'cast_to_integer_or_char':

c/_cffi_backend.c:2916:26: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:2916:26: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'Py_ssize_t' [-Wformat]

c/_cffi_backend.c:2916:26: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c:2928:26: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:2928:26: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'Py_ssize_t' [-Wformat]

c/_cffi_backend.c:2928:26: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c: In function 'new_array_type':

c/_cffi_backend.c:3480:9: warning: unknown conversion type character 'l' in format [-Wformat]

c/_cffi_backend.c:3480:9: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c: In function 'b_complete_struct_or_union':

c/_cffi_backend.c:3878:22: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:3878:22: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:3878:22: warning: too many arguments for format [-Wformat-extra-args]

Traceback (most recent call last):

  File "<string>", line 17, in <module>

  File "c:\users\paco\appdata\local\temp\pip_build_Paco\cryptography\setup.py", line 113, in <module>

    "build": cffi_build,

  File "D:\Anaconda\lib\distutils\core.py", line 112, in setup

    _setup_distribution = dist = klass(attrs)

  File "build\bdist.win-AMD64\Egg\setuptools\dist.py", line 239, in __init__

  File "build\bdist.win-AMD64\Egg\setuptools\dist.py", line 264, in fetch_build_eggs

  File "build\bdist.win-AMD64\Egg\pkg_resources.py", line 580, in resolve

    dist = best[req.key] = env.best_match(req, ws, installer)

  File "build\bdist.win-AMD64\Egg\pkg_resources.py", line 818, in best_match

    return self.obtain(req, installer) # try and download/install

  File "build\bdist.win-AMD64\Egg\pkg_resources.py", line 830, in obtain

    return installer(requirement)

  File "build\bdist.win-AMD64\Egg\setuptools\dist.py", line 314, in fetch_build_Egg

  File "build\bdist.win-AMD64\Egg\setuptools\command\easy_install.py", line 593, in easy_install



  File "build\bdist.win-AMD64\Egg\setuptools\command\easy_install.py", line 623, in install_item



  File "build\bdist.win-AMD64\Egg\setuptools\command\easy_install.py", line 809, in install_eggs



  File "build\bdist.win-AMD64\Egg\setuptools\command\easy_install.py", line 1015, in build_and_install



  File "build\bdist.win-AMD64\Egg\setuptools\command\easy_install.py", line 1003, in run_setup



distutils.errors.DistutilsError: Setup script exited with error: command 'gcc' failed with exit status 1

----------------------------------------
Cleaning up...
  Removing temporary dir c:\users\paco\appdata\local\temp\pip_build_Paco...
Command python setup.py Egg_info failed with error code 1 in c:\users\paco\appdata\local\temp\pip_build_Paco\cryptography
Exception information:
Traceback (most recent call last):
  File "D:\Anaconda\lib\site-packages\pip-1.5.4-py2.7.Egg\pip\basecommand.py", line 122, in main
    status = self.run(options, args)
  File "D:\Anaconda\lib\site-packages\pip-1.5.4-py2.7.Egg\pip\commands\install.py", line 278, in run
    requirement_set.prepare_files(Finder, force_root_Egg_info=self.bundle, bundle=self.bundle)
  File "D:\Anaconda\lib\site-packages\pip-1.5.4-py2.7.Egg\pip\req.py", line 1229, in prepare_files
    req_to_install.run_Egg_info()
  File "D:\Anaconda\lib\site-packages\pip-1.5.4-py2.7.Egg\pip\req.py", line 325, in run_Egg_info
    command_desc='python setup.py Egg_info')
  File "D:\Anaconda\lib\site-packages\pip-1.5.4-py2.7.Egg\pip\util.py", line 697, in call_subprocess
    % (command_desc, proc.returncode, cwd))
InstallationError: Command python setup.py Egg_info failed with error code 1 in c:\users\paco\appdata\local\temp\pip_build_Paco\cryptography

Я нашел другие сообщения об ошибках Egg_info ( здесь и здесь ), но предоставленные там решения не решат мою проблему. Также я могу устанавливать другие пакеты через PIP.

PIP версия 1.5.4 setuptools версия 2.2

235
laven

У меня была похожая проблема, и я обнаружил, что мне просто не хватает зависимости (libssl-dev, для меня). Как указано в https://cryptography.io/en/latest/installation/ , убедитесь, что выполнены все зависимости:

На винде

Если вы работаете в Windows, вам нужно убедиться, что у вас установлен OpenSSL. Доступны предварительно скомпилированные двоичные файлы. Если ваша установка находится в необычном месте, задайте переменные среды LIB и INCLUDE для включения Соответствующих местоположений. Например:

C:\> \path\to\vcvarsall.bat x86_AMD64
C:\> set LIB=C:\OpenSSL-1.0.1f-64bit\lib;%LIB%
C:\> set INCLUDE=C:\OpenSSL-1.0.1f-64bit\include;%INCLUDE%
C:\> pip install cryptography

Построение криптографии на Linux

криптография должна очень легко собираться в Linux, если у вас есть компилятор C, заголовки для Python (если вы не используете pypy) и заголовки для библиотек OpenSSL и libffi, доступных в вашей системе.

Для Debian и Ubuntu следующая команда обеспечит установку необходимых зависимостей:

Sudo apt-get install build-essential libssl-dev libffi-dev python-dev

Для Fedora и RHEL-производных следующая команда обеспечит установку необходимых зависимостей:

Sudo yum install gcc libffi-devel python-devel openssl-devel

Теперь вы должны быть в состоянии построить и установить криптографию с обычным.

pip install cryptography
400
jsonm

Это сжатая версия информации, найденной на странице Установка docs криптографии. Обратитесь к этой странице за последней информацией.

Поскольку этот SO вопрос продолжает возникать, я тоже здесь опущу ответ (я один из разработчиков pyca/cryptography). Вот что вам нужно для надежной установки pyca/cryptography на 3 основные платформы.

Обратите внимание, что во всех этих случаях настоятельно рекомендуется устанавливать в virtualenv, а не в глобальное пространство пакетов. Это не относится только к криптографии, а является общим советом для обеспечения надежной установки Python. Глобальное пространство пакетов в ОС, при условии, что Pythons принадлежит системе, и установка вещей через pip вызывает в ней проблемы.

Windows

Обновите до последней версии (8.1.2 по состоянию на июнь 2016 года) и просто pip install cryptography

криптография и cffi поставляются как статически связанные колеса.

OS X

Обновите до последней версии (8.1.2 по состоянию на июнь 2016 года) и просто pip install cryptography

криптография и cffi поставляются как статически связанные колеса. Это будет работать для pyenv Python, системного Python, доморощенного Python и т.д. Пока вы используете последний пип, вам даже не понадобится компилятор.

Linux

Начиная с версии 2.0, криптография поставляется с колесами Manylinux1. Это означает, что пользователям с pip 8.1+, работающим в дистрибутиве на основе glibc (почти все, кроме Alpine Linux) и x86/x86-64 (извините, люди из Raspberry Pi) больше не нужен компилятор или заголовки, потому что вы получите предварительно скомпилированное колесо автоматически , Итак, первое, что вы должны попробовать, это обновить свой пункт!

Если вы не совместимы с manylinux1, то вот что вам нужно сделать:

Вам понадобится компилятор C, libffi + его заголовки разработки и openssl + его заголовки разработки. 

Debian или производные от Ubuntu дистрибутивы

apt-get install build-essential libssl-dev libffi-dev python-dev с последующим 

pip install cryptography

Производные от Red Hat

yum install gcc openssl-devel libffi-devel python-devel с последующим

pip install cryptography

95
Paul Kehrer

Для тех из вас, кто использует OS X, вот что сработало для меня:

brew install openssl
env ARCHFLAGS="-Arch x86_64" LDFLAGS="-L/usr/local/opt/openssl/lib" CFLAGS="-I/usr/local/opt/openssl/include"
pip install cryptography

(Работает 10,9 Маверикс)

Вы также можете попробовать объединить флаги и команды pip со следующими комментариями:

brew install openssl
env ARCHFLAGS="-Arch x86_64" LDFLAGS="-L/usr/local/opt/openssl/lib" CFLAGS="-I/usr/local/opt/openssl/include" pip install cryptography
40
Nick Woodhams

Это решило проблему для меня (Ubuntu 16.04):

Sudo apt-get install build-essential libssl-dev libffi-dev python-dev python3-dev

и тогда это работало так:

pip install cryptography
pip install pyopenssl ndg-httpsclient pyasn1
22
alneven

Это сработало для меня в Эль-Капитане

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

Вы также можете проверить ветку здесь: https://github.com/pyca/cryptography/issues/2350

22
Dean Christian Armada

Как я решил "Не удалось очистить сборочный каталог для криптографии"
(Я пришел сюда из Google, чтобы привести к этой ошибке.)

note: использование virtualenv 

TL; DR:

мой файл /etc/apt/sources.list не был правильно настроен для моего Debian 8.

Пояснения:

Я хотел установить paramiko . Paramiko нуждается в криптографии.

Я получил эти ошибки: Сначала с pip install cryptography:

(...)
  ----------------------------------------
  Failed cleaning build dir for cryptography
Failed to build cryptography
(...)
    ----------------------------------------
Command "/home/myuser/pyenvs/testo/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-HXWKAO/cryptography/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-WjqY6V-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/myuser/pyenvs/testo/include/site/python2.7/cryptography" failed with error code 1 in /tmp/pip-build-HXWKAO/cryptography/

а затем с Sudo apt-get install build-essential:

Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 build-essential : Depends: libc6-dev but it is not going to be installed > or
                            libc-dev
                   Depends: gcc (>= 4:4.4.3) but it is not going to be installed
                   Depends: g++ (>= 4:4.4.3) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

(Не совсем те же ошибки, что и у OP, но я здесь, чтобы помочь в конце концов)

Решение:

После тестирования почти каждой команды из каждого поста я продолжаю
https://wiki.debian.org/SourcesList
и копия вставлена ​​моей адекватной конфигурации в файл /etc/apt/sources.list

затем:

Sudo aptitude update

а потом

Sudo apt-get install build-essential libssl-dev libffi-dev python-dev

а потом

pip install cryptography

нТН

14
Boop

По-видимому, в последних версиях OSX это может быть вызвано тем, что Apple выпустила собственную версию OpenSSL, которая не работает с библиотекой криптографии. 

Последние версии библиотеки криптографии поставляются со своими собственными зависимостями, но для их получения вам потребуется обновить pip и, возможно, также виртуальную среду. Так что для меня решение было:

pip install --upgrade --force-reinstall pip virtualenv
14
Cam Jackson

Это сработало для меня (я использую Ubuntu 14.04):

сначала установите libffi-dev libssl-dev libpython2.7-dev:

Sudo apt-get install libffi-dev libssl-dev libpython2.7-dev

тогда внутри virtualenv:

pip install cryptography
pip install pyopenssl ndg-httpsclient pyasn1

Источники: 

https://stackoverflow.com/a/32800685/5123544

https://stackoverflow.com/a/29202163/5123544

9
akashbw

Ответ Ника Вудхэма не работал для меня на OSX 10.11 El Capitan, но это сработало.

brew install openssl
CFLAGS="-I/usr/local/opt/openssl/include" pip install cryptography==0.8
7
ouroboros

У меня были проблемы с установкой cryptography==1.7.1 в Ubuntu 16.04, и ни один из ответов выше не помог. Итак, я обновил требование до совместимого 1.8.2 и установка прошла успешно. Обратите внимание, что вам по-прежнему понадобятся основы сборки и другие зависимости, упомянутые в ответе top (большинство голосовавших) .

5
shad0w_wa1k3r

Я пробовал много решений выше, но только после установки следующей библиотеки я смог установить cryptography:

Sudo apt install libssl1.0

Я использую Ubuntu 18.04

4
Daniil Mashkin

Если вы используете python3, вам нужно установить python3-dev. Это исправило мою проблему Sudo apt-get install python3-dev.

4
Pobe

У меня возникла проблема с запуском Sudo pip install cryptography, потому что он не нашел ffi при попытке компиляции. (OSX - Йосемити)

Я решил это, загрузив libffi и настроив env var.

$ brew install pkg-config libffi
$ export PKG_CONFIG_PATH=/usr/local/Cellar/libffi/3.0.13/lib/pkgconfig/
$ pip install cryptography
3
ThinkBonobo

Это работает на El Capitan с MacPorts:

$ Sudo port install openssl
$ env LDFLAGS="-L/opt/local/lib" CFLAGS="-I/opt/local/include" pip install cryptography
3
Torsten Homberger

Я заметил, что оригинальный постер явно использовал установку Windows ... и лучшие ответы выше для всех ОС ... так что здесь. Это предполагает, что вы установили Python 2.7, который является наиболее широко поддерживаемой (хотя и старой) версией.

  1. Установите " Компилятор Visual C++ для Python "
  2. Откройте окно командной строки администратора
  3. Перезапустите pip install (package), например, 

    cd C:\Python27\Scripts
    pip install cryptography  (or pycrypto, fabric, etc)
    
2
Steven the Easily Amused

На самом деле я столкнулся с той же проблемой, пытаясь установить Scrapy, которая зависит от того, какая криптография была установлена ​​первой. Я нахожусь на Win764-bit с установленным Python 2.7 64-bit. Ответ @ jsonm в конечном итоге сработал для меня, но сначала мне пришлось скопировать C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvarsx86_AMD64.bat в подкаталог x86_AMD64 в этом каталоге bin, чтобы vcvarsall.bat перестал выдавать ошибку, говоря, что в ней отсутствует конфигурация. Если вам нужно настроить env vars для другой установки, обязательно скопируйте его в соответствующий файл vcvars bat в соответствующий subdir, иначе первая команда ниже может не сработать.

Затем я запустил следующее из командной строки в соответствии с инструкциями @ jsonm (настроено для моей конфигурации) ... 

C:\> "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86_AMD64 
C:\> set LIB=C:\OpenSSL-Win64\lib;%LIB% 
C:\> set INCLUDE=C:\OpenSSL-Win64\include;%INCLUDE% 
C:\> pip install cryptography

И это сработало.

1
minorgod

Я недавно столкнулся с подобной проблемой. В моем случае версии cffi и cryptography, написанные в файле require.txt, были несовместимы (cffi == 1.8.9 и криптография == 1.9). Я решил обновить cffi последней доступной версией.

1
Griffosx

я загрузил полный исходный код paramiko из pypi и сделал

python setup.py установить

это работало без нареканий

все стандартные пакеты pythondev/openssl/libffi уже присутствуют в rhel.

загрузка rpms имеет несоответствие rpm и больше проблем

1
RICHA AGGARWAL

У меня тоже была эта ошибка. После того, как я продолжал получать эту ошибку даже после установки openSSL, я в конце концов попытался установить файлы из колеса из https://pypi.python.org/pypi/cryptography/0.2.2#downloads . Это сработало!

1
user3357177

Эти две команды исправили это для меня:

brew install openssl
brew link openssl --force

Источник: https://github.com/phusion/passenger/issues/1630#issuecomment-147527656

0
Tobias Lorenz

Я решил эту проблему путем обновления с криптографии 1.9 до 2.4.2

0
Alexander Townsend

У меня та же проблема:

pip install cryptography

.
.
.
Installing collected packages: cffi, cryptography
     Running setup.py install for cffi ... error

Затем я устанавливаю libffi-devel и проблема решается

yum install libffi-devel
0
Pradip Das