PIP 및 setup.py로 Python 암호화 패키지를 설치하지 못했습니다.


256

Python을위한 Cryptography 패키지 를 설치 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 오류 게시물 ( herehere )을 찾았 지만 제공된 솔루션으로도 문제가 해결되지 않습니다. 또한 PIP를 통해 다른 패키지를 설치할 수 있습니다.

PIP 버전 1.5.4 setuptools 버전 2.2


모든 사용자를위한 포인터-암호화는 이제 대부분의 OS에 대해 사전 제작 휠을 제공하므로 pip install즉시 암호화 기능을 사용할 수 있습니다.
Legorooj

답변:


427

비슷한 문제가 있었고 종속성 (libssl-dev, 나를 위해)이 누락 된 것을 발견했습니다. https://cryptography.io/en/latest/installation/ 에서 참조 된대로 모든 종속성이 충족되는지 확인 하십시오 .

Windows에서

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에서 암호화 구축

C 컴파일러, 파이썬 용 헤더 (pypy를 사용하지 않는 경우) 및 시스템에서 사용 가능한 OpenSSL 및 libffi 라이브러리 용 헤더가있는 경우 암호화는 Linux에서 매우 쉽게 빌드되어야합니다.

들어 데비안과 우분투 , 다음 명령은 필요한 의존성이 설치되어 있는지 확인합니다 :

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

들어 페도라와 RHEL - 파생 상품 , 다음 명령은 필요한 의존성이 설치되어 있는지 확인합니다 :

sudo yum install gcc libffi-devel python-devel OpenSSL-devel

이제 평소와 같이 암호화를 빌드하고 설치할 수 있습니다.

pip install cryptography

1
고마워, 완벽하게 일했다! VS2010을 사용하려면 다음을 수행해야했습니다. VS90COMNTOOLS = % VS100COMNTOOLS %를 설정하고 lib 이름에 "mt"접미사 추가
Maciek

//, 이것이 원래 질문에 게시 된 것과 비슷한 오류가있는 Python 3.3이있는 CEntOS 6.3 컴퓨터에서 작동했음을 확인할 수 있습니다.
Nathan Basanese

4
libffi-dev패키지가 핵심 이라고 생각 합니다. 더 이상 구성 할 필요는 없지만 패키지 이름이 오류 로그에 나타나지 않았습니다 :-/ 감사합니다.
m3nda

6
python3을 사용 python-dev하는 python3-dev경우 교체 하는 것을 잊지 마십시오
duan

1
FWIW 나는 데비안 (9)을 실행하고,해야 할 일을했을하고 apt-get을 설치 libssl1.0-dev에 나는 동안 오류가 점점 종료 전에 핍 암호화 설치
마이크 페닝 턴

113

이것은 암호화 설치 문서 페이지 에있는 요약 정보 입니다. 최신 정보는 해당 페이지를 참조하십시오.

이 SO 질문이 계속 나오기 때문에 여기에도 응답을 드리겠습니다 (pyca / cryptography 개발자 중 하나입니다). 다음은 3 가지 주요 플랫폼에 pyca / cryptography를 안정적으로 설치하는 데 필요한 것입니다.

이 모든 경우 에 글로벌 패키지 공간이 아닌 virtualenv에 설치 하는 것이 좋습니다 . 이것은 암호화에만 국한된 것이 아니라 Python 설치를 안정적으로 유지하기위한 일반적인 조언입니다. 파이썬이 제공하는 OS의 글로벌 패키지 공간은 시스템이 소유하고 있으며 pip를 통해 물건을 설치하면 문제가 발생합니다.

윈도우

최신 핍 (2016 년 6 월 기준 8.1.2)으로 업그레이드 pip install cryptography

암호화와 cffi는 모두 정적으로 연결된 휠로 제공됩니다.

OS X

최신 핍 (2016 년 6 월 기준 8.1.2)으로 업그레이드 pip install cryptography

암호화와 cffi는 모두 정적으로 연결된 휠로 제공됩니다. 이것은 pyenv Python, system Python, homebrew Python 등에서 작동합니다. 최신 pip를 사용하는 한 컴파일러가 필요하지 않습니다.

리눅스

버전 2.0 암호화는 많은 Linux1 휠을 제공합니다. 이것은 gli 8.1 기반 배포판 (Alpine Linux를 제외한 거의 모든 것)과 x86 / x86-64 (죄송한 Raspberry Pi 사람들)에서 pip 8.1+를 사용하는 사용자는 더 이상 프리 컴파일 된 휠을 자동으로 얻을 수 있으므로 더 이상 컴파일러 나 헤더가 필요하지 않음을 의미합니다 . 따라서 가장 먼저 시도해야 할 것은 핍을 업그레이드하는 것입니다!

호환되지 않는 Linux1이 없다면 다음과 같이해야합니다.

C 컴파일러, libffi + 개발 헤더 및 openssl + 개발 헤더가 필요합니다.

데비안 또는 우분투 파생 배포판

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


1
나는 이것을했지만 여전히이 오류가 발생합니다 : "암호화에 대한 빌딩 휠 실패"와 많은 출력 (댓글이 너무 많음)이 뒤 따릅니다.
RolandiXor

4
MacOSX 응답은 MacOS Sierra 10.12에서 매력처럼 작동했습니다. 현재 핍을 최신 버전 인 9.0.1로 업그레이드했습니다.
João Santos

3
최신 pip (2016 년 6 월 현재 8.1.2)로 업그레이드하면 pip install 암호화 기능 만 작동합니다!
Timothy Dalton

나는 pip오래된 것을 수동으로 업데이트해야 했는데 OSX 솔루션은 매력처럼 작동합니다. ( pip 9.0.1, MacOS Sierra)
벤자민 츠

1
열려 있지 않은 파일을 포함 할 수 있습니다 빌드 오류가, 내 윈도우 10에서 작동하지 않습니다 : '하려면 openssl / opensslv.h'
Totte 카를

43

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 매버릭스 실행)

아래 설명에 따라 flags 및 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

1
CFLAGS="-I/usr/include" pip install cryptography 에서 reaperhulk 매버릭스에 날 위해 일했습니다.
jjr4826

대답의이 명령은 정확하지 않습니다. 두 번째와 세 번째 행을 병합해야합니다 (백 슬래시 사용). 그런 다음 El Capitan에서 완벽하게 테스트되었습니다. 위의 의견도 정확하지 않습니다. 답변의 다른 설정이 필요하거나 나중에 불만이 접수됩니다.
Christian

1
언제나처럼 @nathancahill HEHE
Nick

1
나는 사용 export하지 않아야 env했지만 그렇지 않으면 작동합니다.
Richard

$ ARCHFLAGS="-arch x86_64" LDFLAGS="-L/usr/local/opt/openssl/lib" CFLAGS="-I/usr/local/opt/openssl/include" pip install cryptography나를 위해 일한 macOS 10.12Python3.7의 (a VIRTUALENV에) 필요시 cryptography설치하려면 ansible.
jalanb

23

이것은 El Capitan에서 나를 위해 일했습니다.

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 에서 스레드를 확인할 수도 있습니다.


이것은 Mojave 10.14.5에서 나를 위해 일한이 페이지의 첫 번째 (그리고 많은 다른 많은 ..) 것입니다. 감사합니다. 또한 환경 변수는 다른 곳과 달리 세션이 아닌 명령에 대해서만 활성화됩니다.
Chris

23

이것은 나를 위해 문제를 해결했습니다 (우분투 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

14

분명히 OSX의 최신 버전에서는 Apple이 자체 버전의 OpenSSL을 제공하여 암호화 라이브러리에서 작동하지 않기 때문에 발생할 수 있습니다.

최신 버전의 암호화 라이브러리는 고유 한 종속성을 제공하지만이를 얻으려면 pip 및 가상 환경을 업그레이드해야합니다. 나를 위해 해결책은 다음과 같습니다.

pip install --upgrade --force-reinstall pip virtualenv

virtualenv 재설치가 나를 위해 그것을 해냈습니다. 이전 버전의 pip를 사용하여 계속 실패했습니다. 감사합니다!
Adri Van Houdt

여전히 나를 위해 실패합니다. 여기 OSX 10.11.3 El Capitan.
agondiken

14

"암호화에 대한 빌드 디렉토리 정리 실패"를 해결하는 방법
(이 오류로 인해 Google에서 왔습니다)

참고 : virtualenv 사용

TL; DR :

내 파일 /etc/apt/sources.list 이 데비안 8에 맞게 올바르게 구성되지 않았습니다.

설명 :

파라 미코를 설치하고 싶었습니다. 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

hth


우분투 16.04 서버에서 내 문제를 해결했습니다. 감사합니다
Altaf Hussain

14

위의 많은 솔루션을 시도했지만 다음 lib를 설치 한 후에 만 ​​설치할 수 있습니다 cryptography.

sudo apt install libssl1.0

우분투 18.04를 사용하고 있지만 우분투 18.10에서도 작동합니다.


1
이 코드는 질문에 대답 할 수 있지만 문제를 해결하는 방법 및 / 또는 이유에 대한 추가 컨텍스트를 제공하면 답변의 장기적인 가치가 향상됩니다.
Nic3500

1
이것은 나를 위해 일했습니다. 왜 효과가 있었습니까? libssl1.0-dev와 libssl-dev를 설치하는 패키지의 차이점은 무엇입니까?
Chris

2
나는 이유를 알지 못하지만 이것 만이 나에게도 도움이되었다
dyus

나도 일했다. pip는 성공적인 설치를 발표 한 후에도 여전히 세그먼테이션 오류가 발생하지만 pip 문제 일 뿐이라고 생각합니다.
Rob Mosher


7

Nick Woodham의 답변은 OSX 10.11 El Capitan에서 작동하지 않았지만 그렇게했습니다.

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

이것은 나를 위해 일하는 것에 가장 가깝지만 실패했습니다 .. El Capitan OSX 10.11.3 here. 에 / 개인의 / var / 폴더 / D9 / 75cfznt17cjc124j3stq3qc40000gn / T / PIP-구축 Q_JjdE / 암호화 / 오류 코드 1로 실패
agondiken

나는 사용해야 CFLAGS="-I/usr/local/opt/openssl/include" pip install cryptography했고 그것을 설치했다. LDFLAGS="-L/usr/local/opt/openssl/lib"라이브러리를로드 하려면 추가해야했습니다 . Dean Christian Armada 의 의견은 하드 코딩 대신 브루 생성 변수를 사용하지만 동일한 작업을 수행하는 것으로 보입니다.
spig

4

python3을 사용하는 경우을 설치해야합니다 python3-dev. 이것은 내 문제를 해결했다 sudo apt-get install python3-dev.



3

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

cffi가 설치에 실패하여 pip를 설치하는 데 pip 문제가 있었지만 cffi 및 bcrypt 모두에서 수정했습니다. 감사합니다!
radiantradon

이것은 El Capitan에서 작동하지 않았습니다. 또한 "pip install cryptography"가 끝날 때 이탈 기간에 유의하십시오.
shacker

@shacker 엘 캐피 탄이 없으므로 테스트 할 수는 없지만 길 잃은 기간 덕분에 제거되었습니다.
ThinkBonobo

@shacker El Capitan 설치에 대한 답변을 확인하십시오
Dean Christian Armada

3

이것은 MacPorts를 사용하는 El Capitan에서 작동합니다.

$ sudo port install openssl
$ env LDFLAGS="-L/opt/local/lib" CFLAGS="-I/opt/local/include" pip install cryptography

3

AWS EC2 머신에 배포 된 gitlab 러너를 사용하는 GitLab CI.gitlab-ci.yml 파일로 Python 패키지 배포를 구축하는 경우

 - apk add --update alpine-sdk && \
 - apk add libffi-dev openssl-dev && \
 - apk --no-cache --update add build-base

1
건배, 알파인 기반 도커 컨테이너에서 잘 작동했습니다!
Alex Szabó

2

원래 포스터가 Windows 설치를 분명히 사용하고 있음을 알았습니다 ... 위의 가장 좋은 대답은 다른 OS에 대한 것입니다. 이것은 가장 널리 지원되는 (이전 버전) Python 2.7을 설치했다고 가정합니다.

  1. " Visual C ++ Compiler for Python "설치
  2. 관리 명령 프롬프트 창을 엽니 다
  3. 핍 설치 (패키지) 다시 실행

    cd C:\Python27\Scripts
    pip install cryptography  (or pycrypto, fabric, etc)

2

최근에 비슷한 문제가 발생했습니다. 필자의 경우 requirements.txt 버전 cffi과 버전이 cryptography호환되지 않았습니다 (cffi == 1.8.9 및 cryptography == 1.9). cffi사용 가능한 마지막 버전으로 업데이트 를 해결했습니다 .


1

실제로 Scrapy를 설치하려고 시도하는 것과 동일한 프로브에 부딪 쳤습니다. Python 2.7 64 비트가 설치된 Win764 비트에 있습니다. @ jsonm의 대답은 결국 나를 위해 일했지만 처음에는 해당 bin 디렉토리 내의 하위 디렉토리 에 복사 C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvarsx86_amd64.bat해야 x86_amd64하므로 vcvarsall.bat구성이 누락되었다는 오류가 발생하지 않습니다. 다른 설정을 위해 env vars를 구성해야하는 경우 해당 vcvars bat 파일에 해당하는 하위 디렉토리로 복사하지 마십시오. 그렇지 않으면 아래의 첫 번째 명령이 작동하지 않을 수 있습니다.

그런 다음 @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

나는 pypi에서 paramiko 전체 소스 코드를 다운로드했고

파이썬 setup.py 설치

그것은 완벽하게 일했다

모든 기본 pythondev / openssl / libffi 패키지는 이미 rhel에 있습니다.

다운로드 rpm은 rpm 불일치와 더 많은 문제가 있습니다


0

같은 문제가 있습니다.

pip install cryptography

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

그런 다음 libffi-devel을 설치하면 문제가 해결됩니다.

yum install libffi-devel


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.