无法在 OSX / Python 3.9 上安装 pyarrow:这是我还是不兼容的包?
Posted
技术标签:
【中文标题】无法在 OSX / Python 3.9 上安装 pyarrow:这是我还是不兼容的包?【英文标题】:Can't install pyarrow on OSX / Python 3.9: is this me or an incompatible package? 【发布时间】:2021-03-05 01:04:26 【问题描述】:我正在尝试在 OSX 11.0.1 上使用 pip3 安装 pyarrow
,并收到错误消息。
我正在使用 Python 3.9,但不确定这是否是问题所在。
这是错误摘要:
ERROR: Command errored out with exit status 1:
command: /usr/local/opt/python@3.9/bin/python3.9 /usr/local/lib/python3.9/site-packages/pip install --ignore-installed --no-user --prefix /private/var/folders/mk/2fgx_1s96zjd1r9xzhs2ht_00000gn/T/pip-build-env-pev1z3i2/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- 'cython >= 0.29' 'numpy==1.14.5; python_version<'"'"'3.7'"'"'' 'numpy==1.16.0; python_version>='"'"'3.7'"'"'' setuptools setuptools_scm wheel
cwd: None
这是完整的(很长的)错误输出,我不知道如何阅读以找到问题的根源:https://pastebin.com/RQcEuwbz
看起来可能是pyarrow had problems with Python 3.9,但现在应该已经修复了吗?我有点不知道下一步该做什么。
更新:啊,found a PR to make pyarrow work with Python 3.9 尚未合并 - 所以我猜 pyarrow 的 pip 版本不适用于 Python 3.9,这就是问题所在。看起来 PR 没有被合并,因为它在 Windows 上不起作用,但这对我来说并不重要,因为我在 OSX 上。有没有办法告诉 pip 从 PR 中的版本安装 pyarrow?
【问题讨论】:
我试过pip3 install git+https://github.com/terencehonles/arrow/tree/arrow-102242.git@fcb561bf960f23d3c1b85c791bb2acff8e2575a6
,但这给了我ERROR: Command errored out with exit status 128
。我也不确定这是否是个好主意!
【参考方案1】:
2021 年更新:自 2021 年 2 月以来,Pyarrow 已经有了 Python3.9 的***,Pyarrow 版本 3.0.0
见Pyarrow Github
我只需要升级 pip 版本。
(上一个答案的编辑队列已满,所以我自己发布一个答案)
【讨论】:
【参考方案2】:截至 2020 年 12 月 16 日,fastparquet
和 pyarrow
都没有适用于 Python 3.9 的***
这有望很快改变。
【讨论】:
Linux ***的 PyArrow 问题:issues.apache.org/jira/browse/ARROW-10224,macOS:issues.apache.org/jira/browse/ARROW-10904,Windows:issues.apache.org/jira/browse/ARROW-10905 如果使用 conda 环境,可以使用 Python 3.9 使用pyarrow
。只是***不可用。【参考方案3】:
从链接的错误日志中可以看到,由于无法安装numpy
,构建失败。因此,您首先需要运行numpy
安装,然后才能继续使用pyarrow
。
12 warnings and 1 error generated.
error: Command "clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE=1 -Inumpy/core/include -Ibuild/src.macosx-10.15-x86_64-3.9/numpy/core/include/numpy -Inumpy/core/src/common -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/usr/local/include -I/usr/local/opt/openssl@1.1/include -I/usr/local/opt/sqlite/include -I/usr/local/Cellar/python@3.9/3.9.0_1/Frameworks/Python.framework/Versions/3.9/include/python3.9 -Ibuild/src.macosx-10.15-x86_64-3.9/numpy/core/src/common -Ibuild/src.macosx-10.15-x86_64-3.9/numpy/core/src/npymath -Ibuild/src.macosx-10.15-x86_64-3.9/numpy/core/src/common -Ibuild/src.macosx-10.15-x86_64-3.9/numpy/core/src/npymath -c numpy/random/mtrand/mtrand.c -o build/temp.macosx-10.15-x86_64-3.9/numpy/random/mtrand/mtrand.o -MMD -MF build/temp.macosx-10.15-x86_64-3.9/numpy/random/mtrand/mtrand.o.d" failed with exit status 1
【讨论】:
谢谢。不过,我已经有一个 numpy 的工作副本:$ pip3 install numpy
产生 Requirement already satisfied: numpy in /usr/local/lib/python3.9/site-packages (1.19.4)
。
尝试使用--no-use-pep517 --no-build-isolation
作为pip3 install
的标志。这应该使用安装环境中的numpy
。
谢谢。不幸的是,这只是给了我一个不同的错误pastebin.com/raw/tKz4SDN8
目前还没有适用于 Python 3.9 和 macOS 的***,请使用 Python 3.8 或按照您的方式从源代码构建。在您的情况下,您缺少 Arrow 的 C++ 部分,您可以通过 brew install apache-arrow
获得
感谢您继续提供帮助!我跑了brew install apache-arrow
,现在我得到了一个不同的错误:error: can't copy 'build/lib.macosx-11-x86_64-3.9/pyarrow/include/arrow': doesn't exist or not a regular file
。完整输出pastebin.com/raw/uSmx2K1t以上是关于无法在 OSX / Python 3.9 上安装 pyarrow:这是我还是不兼容的包?的主要内容,如果未能解决你的问题,请参考以下文章
cx_Oracle 无法在 Python 3.9 中导入,尽管一切都已正确路径并且所有必需的部分都在 64 位上运行
无法在 PyCharm 中安装 PyTorch(Python 3.9 / macOS)
为啥 python 使用 3.8.1 和 3.9,然后无法安装包(错误:包 pkg 需要不同的 Python:3.8.1 不在 '>=3.9.0' 中)?