错误:无法为使用 PEP 517 的密码学库构建轮子,因此无法直接安装。
错误:无法为使用 PEP 517 的密码学库构建轮子,因此无法直接安装。
在使用pip为cryptography包构建wheel时,我遇到了一个错误。\n错误信息:\n\n
LINK : fatal error LNK1181: 无法打开输入文件 'libssl.lib' error: 命令 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x86\\link.exe' 执行失败,退出状态为 1181 ---------------------------------------- ERROR: Failed building wheel for cryptography Running setup.py clean for cryptography Failed to build cryptography ERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly
\n我已经按照此帖子中的建议安装了OpenSSL并设置了环境变量,但问题仍然存在。我的设置详细信息如下:\n
- \n
- 操作系统 - Windows 10
- Python版本 - 3.8
- Pip版本 - 19.3.1
\n
\n
\n
问题原因:安装cryptography模块时出现错误,无法构建wheels,并且该模块无法直接安装。
解决方法:尝试使用cryptography==3.1.1
版本进行安装。
具体步骤如下:
1. 在Windows 10 PC上的Python 3.9.0环境中,将cryptography==2.8
从requirements.txt中移除,只保留"cryptography"。
2. 保存requirements.txt文件后,运行pip install -r requirements.txt
命令进行安装,安装成功。
3. 运行pip freeze > requirements.txt
命令冻结requirements.txt文件,此时requirements.txt中更新为cryptography==3.1.1
。
4. 出现以下错误信息:ERROR: Failed building wheel for cryptography Failed to build cryptography ERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly。
5. 确认已按照上述步骤操作,尝试升级pip并重新运行上述步骤。升级pip可以运行python -m pip install -U pip
命令。如果问题仍存在,请告知。
6. 如果使用snowflake-connector-python 2.2.8版本,可能会导致问题。在移除版本号后,应用程序可以成功运行。不确定在发布到云端后会出现何种行为,希望一切顺利。
7. 从v3.4开始,cryptography模块开始使用Rust,如果想避免使用Rust,可以使用最新版本cryptography==3.3.2
。
8. 还可以尝试设置环境变量CRYPTOGRAPHY_DONT_BUILD_RUST=1
。
在我的情况下(Windows 10 + conda),更新pip解决了这个问题:
python -m pip install --upgrade pip
文档中说要升级pip,然后你将使用分布式二进制文件 cryptography.io/en/latest/installation.html#rust
问题的出现原因是无法直接安装使用PEP 517构建的密码学软件包,导致构建失败。而解决方法是通过更新pip来解决这个问题。根据文档的说明,在Windows 10 + conda环境中,可以使用以下命令来更新pip:
python -m pip install --upgrade pip
。更新完pip之后,就可以使用分布式二进制文件来安装cryptography软件包了。更多的详情可以参考cryptography.io/en/latest/installation.html#rust。