python - 错误:无法为使用 PEP 517 且无法直接安装的摆锤制造轮子
问题描述
请帮忙。尝试了我可以在网上找到的大多数解决方案,最后还是将其发布在 stackoverflow 上。
我在尝试安装 Pendulum 包时遇到的错误如下:
C:\WINDOWS\system32>pip install pendulum Collecting pendulum Using cached pendulum-2.1.0.tar.gz (80 kB) Installing build dependencies ... done Getting requirements to build wheel ... done
Preparing wheel metadata ... done Collecting pytzdata>=2018.3 Using cached pytzdata-2019.3-py2.py3-none-any.whl (489 kB) Requirement already satisfied: python-dateutil<3.0,>=2.6 in c:\python\python38-32\lib\site-packages (from pendulum) (2.8.1) Requirement already satisfied: six>=1.5 in c:\users\cuser\appdata\roaming\python\python38\site-packages (from python-dateutil<3.0,>=2.6->pendulum) (1.14.0) Building wheels for collected packages: pendulum Building wheel for pendulum (PEP 517) ... error ERROR: Command errored out with exit status 1: command: 'c:\python\python38-32\python.exe' 'c:\python\python38-32\lib\site-packages\pip\_vendor\pep517\_in_process.py' build_wheel 'C:\Users\cuser\AppData\Local\Temp\tmpkbrn91g9'
cwd: C:\Users\cuser\AppData\Local\Temp\pip-install-q2vfs50o\pendulum Complete output (24 lines): Traceback (most recent call last):
File "setup.py", line 2, in <module>
from setuptools import setup ModuleNotFoundError: No module named 'setuptools' Traceback (most recent call last):
File "c:\python\python38-32\lib\site-packages\pip\_vendor\pep517\_in_process.py", line 257, in <module>
main()
File "c:\python\python38-32\lib\site-packages\pip\_vendor\pep517\_in_process.py", line 240, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "c:\python\python38-32\lib\site-packages\pip\_vendor\pep517\_in_process.py", line 181, in build_wheel
return _build_backend().build_wheel(wheel_directory, config_settings,
File "C:\Users\cuser\AppData\Local\Temp\pip-build-env-nvwxlarh\overlay\Lib\site-packages\poetry\core\masonry\api.py", line 57, in build_wheel
return unicode(WheelBuilder.make_in(poetry, Path(wheel_directory)))
File "C:\Users\cuser\AppData\Local\Temp\pip-build-env-nvwxlarh\overlay\Lib\site-packages\poetry\core\masonry\builders\wheel.py", line 56, in make_in
wb.build()
File "C:\Users\cuser\AppData\Local\Temp\pip-build-env-nvwxlarh\overlay\Lib\site-packages\poetry\core\masonry\builders\wheel.py", line 82, in build
self._build(zip_file)
File "C:\Users\cuser\AppData\Local\Temp\pip-build-env-nvwxlarh\overlay\Lib\site-packages\poetry\core\masonry\builders\wheel.py", line 102, in _build
self._run_build_command(setup)
File "C:\Users\cuser\AppData\Local\Temp\pip-build-env-nvwxlarh\overlay\Lib\site-packages\poetry\core\masonry\builders\wheel.py", line 130, in _run_build_command
subprocess.check_call(
File "c:\python\python38-32\lib\subprocess.py", line 364, in check_call
raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['c:\\python\\python38-32\\python.exe', 'setup.py', 'build', '-b', 'build']' returned non-zero exit status 1.
---------------------------------------- ERROR: Failed building wheel for pendulum Failed to build pendulum ERROR: Could not build wheels for pendulum which use PEP 517 and cannot be installed directly
The current python version and package versions are as below:
Python 3.8.2
Package Version
----------------- -------
astroid 2.3.3
colorama 0.4.3
cx-Oracle 7.3.0
ez-setup 0.9
isort 4.3.21
lazy-object-proxy 1.4.3
mccabe 0.6.1
numpy 1.18.2
pandas 1.0.3
pip 20.0.2
pylint 2.4.4
python-dateutil 2.8.1
pytz 2019.3
setuptools 46.1.3
six 1.14.0
SQLAlchemy 1.3.15
wheel 0.34.2
wrapt 1.11.2
OS version:
OS Name: Microsoft Windows 10 Enterprise
OS Version: 10.0.17763 N/A Build 17763
解决方案
这似乎是 Pendulum 配置方式中的两个错误的结果。
第一个错误是 Windows 轮子的名称错误。请参阅https://github.com/sdispater/pendulum/issues/456。
因此,Pip 正试图退回到从源头构建。我不确定这里到底出了什么问题,但是 Pendulum 中的某些内容配置错误,因此安装不适用于现代版本的 Pip。请参阅https://github.com/sdispater/pendulum/issues/454。
有两种变通解决方案:
- 将 Pip 降级到 18.1 版。这对我个人有用。
- 将 Poetry 安装到您的项目环境中,然后使用该
--no-build-isolation
选项安装 Pendulum,如 @Wes 所述:https ://github.com/sdispater/pendulum/issues/454#issuecomment-605519477
我宁愿暂时降级 Pip,直到这个问题得到解决,而不是弄乱我的项目环境。所以我选择了第一个选项。在解决此问题之前,您应该选择对您的工作流程更有意义的任何内容。
推荐阅读
- javascript - 在 jmeter 中加载两个 javascript 文件后,我无法使用 javascript 文件的功能
- entity-framework - 更新 .net 核心中的实体框架特定模型
- node.js - 将 mongodb 导出到另一个文件的模块 - 这是正确的方法?(在 nodejs 中)
- javascript - 它总是显示一个输出,要么突出显示关键字,要么只显示警告框,如何同时实现两者
- c++ - 我怎样才能输出一个漂亮整洁的列?
- javascript - AdonisJs 中的 not_required_when 验证器
- html - 努力使 div 的形状与图像形状相同
- javascript - 如何使用Javascript突出显示日历中不同月份的多个日期?
- swift - 如何在我的表格视图中修复我的部分中的单元格的分离集合?
- ios - 为什么不能生孩子
[] 在正文中:中心小部件?