pip cryptography 遇到的 OpenSSL 问题

pip install -r requirements.txt 遇到 bug

Collecting cryptography==2.7
  Downloading cryptography-2.7.tar.gz (495 kB)
     ------------------------------------- 495.9/495.9 kB 15.7 MB/s eta 0:00:00
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
Collecting asn1crypto>=0.21.0 (from cryptography==2.7)
  Using cached asn1crypto-1.5.1-py2.py3-none-any.whl (105 kB)
Requirement already satisfied: six>=1.4.1 in d:\workproject\2023\7_11\bkom\venv\lib\site-packages (from cryptography==2.7) (1.16.0)
Requirement already satisfied: cffi!=1.11.3,>=1.8 in d:\workproject\2023\7_11\bkom\venv\lib\site-packages (from cryptography==2.7) (1.15.1)
Requirement already satisfied: pycparser in d:\workproject\2023\7_11\bkom\venv\lib\site-packages (from cffi!=1.11.3,>=1.8->cryptography==2.7) (2.21)
Building wheels for collected packages: cryptography
  Building wheel for cryptography (pyproject.toml): started
  Building wheel for cryptography (pyproject.toml): finished with status 'error'
Failed to build cryptography

  error: subprocess-exited-with-error
  
  Building wheel for cryptography (pyproject.toml) did not run successfully.
  exit code: 1
  
  [144 lines of output]
  <string>:14: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build\lib.win-amd64-cpython-39
  creating build\lib.win-amd64-cpython-39\cryptography
  copying src\cryptography\exceptions.py -> build\lib.win-amd64-cpython-39\cryptography
  copying src\cryptography\fernet.py -> build\lib.win-amd64-cpython-39\cryptography
  copying src\cryptography\utils.py -> build\lib.win-amd64-cpython-39\cryptography
  copying src\cryptography\__about__.py -> build\lib.win-amd64-cpython-39\cryptography
  copying src\cryptography\__init__.py -> build\lib.win-amd64-cpython-39\cryptography
  creating build\lib.win-amd64-cpython-39\cryptography\hazmat
  copying src\cryptography\hazmat\_oid.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat
  copying src\cryptography\hazmat\__init__.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat
  creating build\lib.win-amd64-cpython-39\cryptography\x509
  copying src\cryptography\x509\base.py -> build\lib.win-amd64-cpython-39\cryptography\x509
  copying src\cryptography\x509\certificate_transparency.py -> build\lib.win-amd64-cpython-39\cryptography\x509
  copying src\cryptography\x509\extensions.py -> build\lib.win-amd64-cpython-39\cryptography\x509
  copying src\cryptography\x509\general_name.py -> build\lib.win-amd64-cpython-39\cryptography\x509
  copying src\cryptography\x509\name.py -> build\lib.win-amd64-cpython-39\cryptography\x509
  copying src\cryptography\x509\ocsp.py -> build\lib.win-amd64-cpython-39\cryptography\x509
  copying src\cryptography\x509\oid.py -> build\lib.win-amd64-cpython-39\cryptography\x509
  copying src\cryptography\x509\__init__.py -> build\lib.win-amd64-cpython-39\cryptography\x509
  creating build\lib.win-amd64-cpython-39\cryptography\hazmat\backends
  copying src\cryptography\hazmat\backends\interfaces.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends
  copying src\cryptography\hazmat\backends\__init__.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends
  creating build\lib.win-amd64-cpython-39\cryptography\hazmat\bindings
  copying src\cryptography\hazmat\bindings\__init__.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\bindings
  creating build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives
  copying src\cryptography\hazmat\primitives\cmac.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives
  copying src\cryptography\hazmat\primitives\constant_time.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives
  copying src\cryptography\hazmat\primitives\hashes.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives
  copying src\cryptography\hazmat\primitives\hmac.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives
  copying src\cryptography\hazmat\primitives\keywrap.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives
  copying src\cryptography\hazmat\primitives\padding.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives
  copying src\cryptography\hazmat\primitives\poly1305.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives
  copying src\cryptography\hazmat\primitives\__init__.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives
  creating build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\aead.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\backend.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\ciphers.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\cmac.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\decode_asn1.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\dh.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\dsa.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\ec.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\ed25519.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\ed448.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\encode_asn1.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\hashes.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\hmac.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\ocsp.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\poly1305.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\rsa.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\utils.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\x25519.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\x448.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\x509.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  copying src\cryptography\hazmat\backends\openssl\__init__.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\backends\openssl
  creating build\lib.win-amd64-cpython-39\cryptography\hazmat\bindings\openssl
  copying src\cryptography\hazmat\bindings\openssl\binding.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\bindings\openssl
  copying src\cryptography\hazmat\bindings\openssl\_conditional.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\bindings\openssl
  copying src\cryptography\hazmat\bindings\openssl\__init__.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\bindings\openssl
  creating build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\asymmetric
  copying src\cryptography\hazmat\primitives\asymmetric\dh.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\asymmetric
  copying src\cryptography\hazmat\primitives\asymmetric\dsa.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\asymmetric
  copying src\cryptography\hazmat\primitives\asymmetric\ec.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\asymmetric
  copying src\cryptography\hazmat\primitives\asymmetric\ed25519.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\asymmetric
  copying src\cryptography\hazmat\primitives\asymmetric\ed448.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\asymmetric
  copying src\cryptography\hazmat\primitives\asymmetric\padding.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\asymmetric
  copying src\cryptography\hazmat\primitives\asymmetric\rsa.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\asymmetric
  copying src\cryptography\hazmat\primitives\asymmetric\utils.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\asymmetric
  copying src\cryptography\hazmat\primitives\asymmetric\x25519.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\asymmetric
  copying src\cryptography\hazmat\primitives\asymmetric\x448.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\asymmetric
  copying src\cryptography\hazmat\primitives\asymmetric\__init__.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\asymmetric
  creating build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\ciphers
  copying src\cryptography\hazmat\primitives\ciphers\aead.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\ciphers
  copying src\cryptography\hazmat\primitives\ciphers\algorithms.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\ciphers
  copying src\cryptography\hazmat\primitives\ciphers\base.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\ciphers
  copying src\cryptography\hazmat\primitives\ciphers\modes.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\ciphers
  copying src\cryptography\hazmat\primitives\ciphers\__init__.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\ciphers
  creating build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\kdf
  copying src\cryptography\hazmat\primitives\kdf\concatkdf.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\kdf
  copying src\cryptography\hazmat\primitives\kdf\hkdf.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\kdf
  copying src\cryptography\hazmat\primitives\kdf\kbkdf.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\kdf
  copying src\cryptography\hazmat\primitives\kdf\pbkdf2.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\kdf
  copying src\cryptography\hazmat\primitives\kdf\scrypt.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\kdf
  copying src\cryptography\hazmat\primitives\kdf\x963kdf.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\kdf
  copying src\cryptography\hazmat\primitives\kdf\__init__.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\kdf
  creating build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\serialization
  copying src\cryptography\hazmat\primitives\serialization\base.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\serialization
  copying src\cryptography\hazmat\primitives\serialization\pkcs12.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\serialization
  copying src\cryptography\hazmat\primitives\serialization\ssh.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\serialization
  copying src\cryptography\hazmat\primitives\serialization\__init__.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\serialization
  creating build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\twofactor
  copying src\cryptography\hazmat\primitives\twofactor\hotp.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\twofactor
  copying src\cryptography\hazmat\primitives\twofactor\totp.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\twofactor
  copying src\cryptography\hazmat\primitives\twofactor\utils.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\twofactor
  copying src\cryptography\hazmat\primitives\twofactor\__init__.py -> build\lib.win-amd64-cpython-39\cryptography\hazmat\primitives\twofactor
  running egg_info
  writing src\cryptography.egg-info\PKG-INFO
  writing dependency_links to src\cryptography.egg-info\dependency_links.txt
  writing requirements to src\cryptography.egg-info\requires.txt
  writing top-level names to src\cryptography.egg-info\top_level.txt
  reading manifest file 'src\cryptography.egg-info\SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  no previously-included directories found matching 'docs\_build'
  warning: no previously-included files found matching 'vectors'
  warning: no previously-included files matching '*' found under directory 'vectors'
  warning: no previously-included files found matching 'azure-pipelines.yml'
  warning: no previously-included files found matching '.azure-pipelines'
  warning: no previously-included files found matching '.travis.yml'
  warning: no previously-included files found matching '.travis'
  warning: no previously-included files matching '*' found under directory '.azure-pipelines'
  warning: no previously-included files matching '*' found under directory '.travis'
  warning: no previously-included files found matching 'release.py'
  warning: no previously-included files found matching '.coveragerc'
  warning: no previously-included files found matching 'codecov.yml'
  warning: no previously-included files found matching 'dev-requirements.txt'
  warning: no previously-included files found matching 'rtd-requirements.txt'
  warning: no previously-included files found matching 'tox.ini'
  adding license file 'LICENSE'
  adding license file 'LICENSE.APACHE'
  adding license file 'LICENSE.BSD'
  adding license file 'LICENSE.PSF'
  adding license file 'AUTHORS.rst'
  writing manifest file 'src\cryptography.egg-info\SOURCES.txt'
  warning: build_py: byte-compiling is disabled, skipping.
  
  running build_ext
  generating cffi module 'build\\temp.win-amd64-cpython-39\\Release\\_padding.c'
  creating build\temp.win-amd64-cpython-39
  creating build\temp.win-amd64-cpython-39\Release
  generating cffi module 'build\\temp.win-amd64-cpython-39\\Release\\_constant_time.c'
  generating cffi module 'build\\temp.win-amd64-cpython-39\\Release\\_openssl.c'
  building '_openssl' extension
  creating build\temp.win-amd64-cpython-39\Release\build
  creating build\temp.win-amd64-cpython-39\Release\build\temp.win-amd64-cpython-39
  creating build\temp.win-amd64-cpython-39\Release\build\temp.win-amd64-cpython-39\Release
  "D:\software_download\Microsoft C++ Build Tools\VC\Tools\MSVC\14.33.31629\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -ID:\workProject\2023\7_11\bkom\venv\include -IC:\Users\xuandonglai\AppData\Local\Programs\Python\Python39\include -IC:\Users\xuandonglai\AppData\Local\Programs\Python\Python39\Include "-ID:\software_download\Microsoft C++ Build Tools\VC\Tools\MSVC\14.33.31629\include" "-ID:\software_download\Microsoft C++ Build Tools\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.19041.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.19041.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.19041.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.19041.0\\cppwinrt" /Tcbuild\temp.win-amd64-cpython-39\Release\_openssl.c /Fobuild\temp.win-amd64-cpython-39\Release\build\temp.win-amd64-cpython-39\Release\_openssl.obj
  _openssl.c
  build\temp.win-amd64-cpython-39\Release\_openssl.c(575): fatal error C1083: 无法打开包括文件: "openssl/opensslv.h": No such file or directory
  error: command 'D:\\software_download\\Microsoft C++ Build Tools\\VC\\Tools\\MSVC\\14.33.31629\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
  [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for cryptography
ERROR: Could not build wheels for cryptography, which is required to install pyproject.toml-based projects

一眼抓关键词 OpenSSL,如果是Windows 64 位系统,下载"Win64 OpenSSL"安装程序。

Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions (slproweb.com)https://slproweb.com/products/Win32OpenSSL.html 直接安装 openssl 安装包是最快捷方便的方法。

Win64 OpenSSL 版本下即可,选文件夹。

Next

"Select Additional Tasks",让选择OpenSSL的dll拷贝到什么地方。建议,不要拷贝到系统目录下,如果其他软件使用的OpenSSL版本与你安装这个版本不同,可能导致该软件无法使用。(此解释参考自:http://t.csdn.cn/zDOTd

然后Install

没钱(donation就是要你捐钱),啥都不选

确保环境变量及CMD可访问

openssl version
相关推荐
sp_fyf_202432 分钟前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-01
人工智能·深度学习·神经网络·算法·机器学习·语言模型·数据挖掘
香菜大丸1 小时前
链表的归并排序
数据结构·算法·链表
jrrz08281 小时前
LeetCode 热题100(七)【链表】(1)
数据结构·c++·算法·leetcode·链表
oliveira-time1 小时前
golang学习2
算法
南宫生2 小时前
贪心算法习题其四【力扣】【算法学习day.21】
学习·算法·leetcode·链表·贪心算法
懒惰才能让科技进步3 小时前
从零学习大模型(十二)-----基于梯度的重要性剪枝(Gradient-based Pruning)
人工智能·深度学习·学习·算法·chatgpt·transformer·剪枝
Ni-Guvara3 小时前
函数对象笔记
c++·算法
泉崎3 小时前
11.7比赛总结
数据结构·算法
你好helloworld3 小时前
滑动窗口最大值
数据结构·算法·leetcode
AI街潜水的八角4 小时前
基于C++的决策树C4.5机器学习算法(不调包)
c++·算法·决策树·机器学习