错误:无法为使用 PEP 517 且无法直接安装的 scipy 构建***
Posted
技术标签:
【中文标题】错误:无法为使用 PEP 517 且无法直接安装的 scipy 构建***【英文标题】:ERROR: Could not build wheels for scipy which use PEP 517 and cannot be installed directly 【发布时间】:2020-08-05 12:18:57 【问题描述】:我正在尝试通过 pip 在我的 64 位 ARMV8 板上安装 scipy。我已经安装了 scipy 所需的 openblas。所以,这没有问题。当我给 pip3 install scipy --trusted-host pypi.org --trusted-host files.pythonhosted.org
时,我得到了错误 Failed building wheel for scipy 。我的/usr/bin
中有 pip3 和 pip3.5,其余的 pip 在/usr/lib64/python3.5/site-packages
。所以基本上,我也有 pip。
我还尝试使用--no-binary
选项安装 scipy,这是网上的答案之一。但是,它给了我同样的错误。下面是我得到的错误。
错误:
Collecting scipy
Downloading scipy-1.4.1.tar.gz (24.6 MB)
|################################| 24.6 MB 6.6 MB/s
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Building wheels for collected packages: scipy
Building wheel for scipy (PEP 517) ... error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 /usr/lib64/python3.5/site-packages/pip-20.0.2-py3.5.egg/pip/_vendor/pep517/_in_process.py build_wheel /tmp/tmpkklsvv4v
cwd: /tmp/pip-install-9v4nmof7/scipy
Complete output (50 lines):
/usr/bin/python3: No module named pip
Traceback (most recent call last):
File "/usr/lib64/python3.5/site-packages/setuptools/installer.py", line 128, in fetch_build_egg
subprocess.check_call(cmd)
File "/usr/lib64/python3.5/subprocess.py", line 271, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/python3', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmpp7fvgp36', '--quiet', 'numpy>=1.13.3']' returned non-zero exit status 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib64/python3.5/site-packages/pip-20.0.2-py3.5.egg/pip/_vendor/pep517/_in_process.py", line 257, in <module>
main()
File "/usr/lib64/python3.5/site-packages/pip-20.0.2-py3.5.egg/pip/_vendor/pep517/_in_process.py", line 240, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "/usr/lib64/python3.5/site-packages/pip-20.0.2-py3.5.egg/pip/_vendor/pep517/_in_process.py", line 182, in build_wheel
metadata_directory)
File "/usr/lib64/python3.5/site-packages/setuptools/build_meta.py", line 213, in build_wheel
wheel_directory, config_settings)
File "/usr/lib64/python3.5/site-packages/setuptools/build_meta.py", line 198, in _build_with_temp_dir
self.run_setup()
File "/usr/lib64/python3.5/site-packages/setuptools/build_meta.py", line 250, in run_setup
self).run_setup(setup_script=setup_script)
File "/usr/lib64/python3.5/site-packages/setuptools/build_meta.py", line 143, in run_setup
exec(compile(code, __file__, 'exec'), locals())
File "setup.py", line 540, in <module>
setup_package()
File "setup.py", line 536, in setup_package
setup(**metadata)
File "/usr/lib64/python3.5/site-packages/numpy/distutils/core.py", line 126, in setup
dist = setup(**new_attr)
File "/usr/lib64/python3.5/site-packages/numpy/distutils/core.py", line 169, in setup
return old_setup(**new_attr)
File "/usr/lib64/python3.5/site-packages/setuptools/__init__.py", line 143, in setup
_install_setup_requires(attrs)
File "/usr/lib64/python3.5/site-packages/setuptools/__init__.py", line 138, in _install_setup_requires
dist.fetch_build_eggs(dist.setup_requires)
File "/usr/lib64/python3.5/site-packages/setuptools/dist.py", line 698, in fetch_build_eggs
replace_conflicting=True,
File "/usr/lib64/python3.5/site-packages/pkg_resources/__init__.py", line 783, in resolve
replace_conflicting=replace_conflicting
File "/usr/lib64/python3.5/site-packages/pkg_resources/__init__.py", line 1066, in best_match
return self.obtain(req, installer)
File "/usr/lib64/python3.5/site-packages/pkg_resources/__init__.py", line 1078, in obtain
return installer(requirement)
File "/usr/lib64/python3.5/site-packages/setuptools/dist.py", line 754, in fetch_build_egg
return fetch_build_egg(self, req)
File "/usr/lib64/python3.5/site-packages/setuptools/installer.py", line 130, in fetch_build_egg
raise DistutilsError(str(e))
distutils.errors.DistutilsError: Command '['/usr/bin/python3', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmpp7fvgp36', '--quiet', 'numpy>=1.13.3']' returned non-zero exit status 1
----------------------------------------
ERROR: Failed building wheel for scipy
Failed to build scipy
ERROR: Could not build wheels for scipy which use PEP 517 and cannot be installed directly
【问题讨论】:
/usr/bin/python3 --version
? /usr/bin/python3 -m pip --version
?
@phd: /usr/bin/python3 --version
是 Python 3.5.3 而/usr/bin/python3 -m pip --version
表示没有名为 pip 的模块。
你需要install pip
@phd:我已经安装了 pip。 /usr/bin/pip3 --version
从 /usr/lib64/python3.5/site-packages/pip-20.0.2-py3.5.egg/pip (python 3.5) 提供 pip 20.0.2
"/usr/bin/python3 -m pip --version
说 没有名为 pip 的模块。" 表示您没有安装 pip
或 /usr/bin/python3
没有知道在哪里可以找到它。 /usr/bin/python3 -c "import sys; print(sys.path)"
— /usr/lib64/python3.5/site-packages
在列表中吗?
【参考方案1】:
在我的例子中,我只是使用了一个特定的 python 版本,即 3.8 作为我的基本图像,而不是最新的
之前:
FROM python:3
之后:
FROM python:3.8
为我解决了问题
【讨论】:
【参考方案2】:试试
pip install --pre --extra-index https://pypi.anaconda.org/scipy-wheels-nightly/simple scikit-learn
适用于 Python 3.10 或更高版本。
【讨论】:
【参考方案3】:有类似的问题。我必须安装一些操作系统,然后才能安装缺少的 scikit 包(在我的情况下为 scikit-sparse)
sudo apt-get install libsuitesparse-dev
【讨论】:
非常感谢,这有助于解决数字海洋部署中的问题【参考方案4】:我的问题是 mpi4py。我的 pip install 产生了这个错误,但是通过 Anaconda GUI 安装包就成功了。
【讨论】:
【参考方案5】:我对 Docker 上的 Django Rest Framework(在 M1 Mac 上运行)有同样的问题,对我有用的是添加
RUN pip install --upgrade pip
就在我安装所有项目依赖项之前。
【讨论】:
【参考方案6】:我在将 macOS 升级到最新版本后开始收到此错误。
我必须先运行 xcode-select --install
来重新安装 Xcode 工具。
关闭并重新打开终端窗口
然后,可以毫无问题地安装 pandas。
【讨论】:
【参考方案7】:我面临的问题是,我一发布就升级到了下一个python版本。
建议:至少等待 1-2 个月再升级。
网络上的不同模块和库不会在 python 更新发布后立即更新,因此它们不会兼容。
只需将你的 python 版本降级到当前版本之前的版本,你就可以开始了。
无论您安装什么或做什么,除非开发人员对其进行更新,否则您将无法安装该模块。
【讨论】:
【参考方案8】:对于最新的 M1 类型的 mac,在创建 virtualenv 之前将 zsh 切换到 x86 类型
第 1 步:
arch -x86_64 zsh
uname -m
输出将是 x86_64
,之前是 arm64
。
第 2 步:
brew install openblas
export OPENBLAS=$(brew --prefix openblas)
export CFLAGS="-falign-functions=8 $CFLAGS"
pip install Cython pybind11 pythran
pip install --no-use-pep517 scipy
(步骤 1 后不需要:--no-use-pep517)
之后一切正常
【讨论】:
【参考方案9】:尝试安装一个订单版本。我在使用 python 3.10 时遇到了同样的问题。我只是将它降级到 python 3.9.7 并且工作正常
【讨论】:
【参考方案10】:我遇到了同样的问题,尽管是在 Apple M1 Macbook Pro 上。这种情况下的解决方案是使用 Miniforge 而不是 Anaconda,因为后者还不支持 arm64 架构。
【讨论】:
【参考方案11】:试试:
apt-get install build-essential python-dev python-pip
然后:
pip install couchbase
【讨论】:
【参考方案12】:我在 macOS 11.5.2(M1 芯片)上尝试 pip3 install aws-sam-cli awscli
时出现此错误。
添加以下两行对我有用
dnf install -y python3-devel
dnf group install -y "Development Tools"
完整的 Dockerfile
FROM centos:8
RUN dnf upgrade -y && \
dnf module -y install nodejs:14 && \
dnf install -y python3 python3-devel git-all && \
dnf group install -y "Development Tools" && \
pip3 install --upgrade pip setuptools && \
pip3 install aws-sam-cli awscli
【讨论】:
【参考方案13】:我在尝试安装 tidyms 包时遇到了这个问题(这取决于 scipy
就我而言,使用 python 3.8 而不是 python 3.9“解决”了这个问题(至少能够安装)。
【讨论】:
【参考方案14】:我个人通过将位于~/.poetry/bin/poetry
的文件中的#!/usr/bin/env python3.9
更改为#!/usr/bin/env python3
并运行pip3 install --upgrade pip setuptools wheel
来消除此错误,显然python3.9 在诗歌方面遇到了一些困难。
【讨论】:
【参考方案15】:ERROR: Failed building wheel for h5py
Failed to build h5py
ERROR: Could not build wheels for h5py which use PEP 517 and cannot be installed directly
我在安装 Keras 时遇到了类似的问题,使用以下步骤解决了上述问题:
conda 安装 h5py
点安装 keras
【讨论】:
【参考方案16】:在我的情况下,我使用以下命令从 requirements.txt
文件安装:
pip install -r requirements.txt
并且收到此错误。我解决了它单独安装软件包 (pip install scipy
) 并将我在 requirements.txt
中的 Scipy 版本替换为有效的版本。
【讨论】:
【参考方案17】:直接做
pip install p5py
pip install PEP517
这样就可以了。
【讨论】:
对我不起作用。在 Windows 上安装 jq 时出现此错误。【参考方案18】:我遇到了同样的问题。似乎 pip 使用 pkg-config - 如果您的主机操作系统缺少它,它将遇到此错误。我解决了:
sudo apt-get install -y pkg-config
然后重新运行pip
【讨论】:
【参考方案19】:numpy
也会出现此错误,如果您使用的是新的 M1 芯片,恐怕您必须以不同的方式安装 numpy
之类的软件包。签出this。
【讨论】:
我不想直接编辑您的答案以进行类似于自我推销的事情...但是如果您可以对此进行测试并确认其有效,那么分享这可能会对其他人有所帮助。我已经成功地在 TF 2.5 上加速了 M1+GPU 的训练。这是我的环境:github.com/ctrahey/m1-tensorflow-config【参考方案20】:如果使用 Windows 操作系统,请在“开始”>“设置”>“更新和安全”>“Windows 安全”>“病毒和威胁防护”>“保护历史记录”下验证 Windows 是否将使用 Pip 安装 PyInstaller 的文件识别为潜在恶意软件并因此阻止它。为我工作。
【讨论】:
【参考方案21】:我遇到了同样的问题,并通过使用 conda 安装模块解决了它。 在我的情况下 conda install -c conda-forge statsmodels 没有错误。
【讨论】:
【参考方案22】:我有同样的问题。我在命令下运行后解决了这个问题
pip install --upgrade pip setuptools wheel
【讨论】:
在尝试安装 scipy1.6.2
时,这在 Python 3.9.4
、pip pip 21.0.1
、macOS Big Sur 11.2.3 (20D91)
上不起作用。仍然收到相同的错误原始问题
阅读您的错误输出!这应该是这个问题的首选答案——因为它允许包管理器进行适当的处理。如果仍然失败,可能是因为您只阅读了错误消息的最后一行。对于我自己,我被一个运行 python2.7(商业)的应用程序困住了,由于 Python.h 头文件与版本指针不匹配,我不得不安装 python2-dev(旧版本)。
我仍然收到错误错误:无法调用 pkg-config【参考方案23】:
我的问题不在于 scipy,而在于 xmlsec。错误信息几乎相同:
ERROR: Could not build wheels for xmlsec which use PEP 517 and cannot be installed directly
我需要这个库,因为它是 python3-saml 的依赖项。从我读到的文档中,他们首先安装了这些软件包:
sudo apt-get install libxml2-dev libxmlsec1-dev
完成此操作后,python3-saml 的安装对我有用。
pip3 -V
pip 20.2.3
python -V
Python 3.8.0b3
可能其他库的答案不同,但它们都需要一些包才能构建,你应该找到适合你的包。
【讨论】:
我在 macOSx 上,所以 homebrew 没有找到 libxml2-dev libxmlsec1-dev,尝试 brew install libxml2,没有帮助。仍然出现错误:无法调用 pkg-config。错误:无法为使用 PEP 517 且无法直接安装的 xmlsec 构建*** @bjm88 这对你来说不是问题,因为 libxml2 库随 OS X 一起提供。我不太了解 OS X,但可能你可以尝试找到解决方案来安装 libxml2-dev然后。在这里查看这个答案:***.com/questions/26473197/…【参考方案24】:我在使用 opencv-python 时遇到了同样的问题。对我有用的是将 pip 更新为:
pip3 install --upgrade pip
注意:我在 Linux 上使用 docker。
【讨论】:
谢谢!我一直在敲击键盘,试图通过 pip 安装 opencv-python,这解决了它! 您是否将其添加到您的 dockerfile 中? @HarryMoreno 是的,我用RUN pip3 install --upgrade -i https://mirrors.aliyun.com/pypi/simple pip
做过,您可以更改存储库以满足您的需要。
我最终使用了不同的基础映像 3.8-slim-buster
,并且默认使用更新版本的 pip
我使用了一个旧的基础镜像(我相信是 Python 3.7)。如果它对你有用,那就太酷了 xD以上是关于错误:无法为使用 PEP 517 且无法直接安装的 scipy 构建***的主要内容,如果未能解决你的问题,请参考以下文章
错误安装 streamlit 它说“错误:无法为使用 PEP 517 且无法直接安装的 pyarrow 构建***”
错误:无法为使用 PEP 517 且无法直接安装的 scipy 构建***
(Python:discord.py)错误:无法为使用 PEP 517 且无法直接安装的 multidict、yarl 构建***
无法在适用于 Windows 的 Python 3.7 上安装 win32core
如何将 PEP 517 和 PEP 518 用于本地可用(不在 PYPI 上)系统范围的 CLI Python 脚本
错误记录Mac 中 Python 报错 ( ERROR: Could not build wheels for numpy which use PEP 517 and cannot be in )(代