【问题标题】:Cannot install pyarrow from pip or conda无法从 pip 或 conda 安装 pyarrow
【发布时间】:2021-03-14 21:41:29
【问题描述】:

我对包管理相对较新,在我的 Windows x64 机器上安装 pyarrow 时遇到了障碍。 Pyarrow 文档说要使用其中一个

conda install -c conda-forge pyarrow

或

pip install pyarrow

https://arrow.apache.org/docs/python/install.html

conda 命令给出

PackagesNotFoundError: The following packages are not available from current channels:

pip 命令在标题下给出了一个非常冗长的错误转储

Installing build dependencies ... error
ERROR: Command errored out with exit status 1:
  • 我在 Python 3.7.9 和 Python 3.8.5 conda 环境中都试过了 因为至少有关于这个问题的 Github Jira 讨论 历史上 (https://issues.apache.org/jira/browse/ARROW-7076)
  • 在 conda 方法中,我 [成功地] 将 https://conda.anaconda.org/conda-forge/win-64 添加到当前频道,但对于 pyarrow 仍然“找不到包”。我这样做是因为我的频道列表似乎是 32 位特定的,而我的机器是 64 位的
  • Conda-forge/win-64 中有充分的证据表明 pyarrow (2.0.0) 存在

感谢您帮助成功安装此软件包。

这是我在 Conda“找不到包”消息中的当前频道列表(手动添加了“win-64”频道)

Current channels:

  - https://conda.anaconda.org/conda-forge/win-32
  - https://conda.anaconda.org/conda-forge/noarch
  - https://repo.anaconda.com/pkgs/main/win-32
  - https://repo.anaconda.com/pkgs/main/noarch
  - https://repo.anaconda.com/pkgs/r/win-32
  - https://repo.anaconda.com/pkgs/r/noarch
  - https://repo.anaconda.com/pkgs/msys2/win-32
  - https://repo.anaconda.com/pkgs/msys2/noarch
  - https://conda.anaconda.org/conda-forge/win-64

【问题讨论】:

  • 看起来你已经安装了 32 位 anaconda,即使你强制它使用 64 位通道,它也不会从它安装包。您将需要安装 64 位 anaconda(或 miniconda)。对于 pip 方法,请将完整错误添加到您的问题中
  • 感谢 FlyingTeller。这就说得通了。我发布了错误的初始部分(但整个事情大大超出了 StackOverflow 限制)
  • 现在问题已解决,添加一个更正的评论...为像我这样可能不了解 32/64 位 Python 主题的其他人跟进 FlyingTeller 评论。我的 Windows Python 实际上是安装了 Anaconda 而我们安装的是 32 位版本(我的“硬件”是 64 位 Parallels VM)。以下两行代码返回“32”或“64”作为检查。 import structstruct.calcsize("P") * 8

标签: python anaconda conda pyarrow


【解决方案1】:

将回答我自己的问题:Arrow 不支持每个 xhochy 的响应 in this thread 的 32 位,因此在我的 64 位硬件上运行的 32 位 Anaconda Navigator 是问题所在。我将努力获得足够的知识来提交 Pull Request 以添加到 Apache 文档中,因为这样可以防止像我这样的人受到这个问题的影响。

在 Windows 中安装 pyarrow 的解决方案 (也可以从命令行执行,但我正在与基于 Anaconda Navigator 的咨询客户合作):

  • 如果运行 32 位 Anaconda Navigator,请将其卸载 per their instructions 他们的文档的其他详细信息是提到的 envs 和 pkgs 子目录通常位于 c:\users\username\anaconda3。首先,把这些扔进垃圾桶。然后按照提示使用 Windows 中的“添加/删除程序”卸载 Anaconda 32 位
  • 从他们网站上的最新安装程序安装 64 位 Anaconda
  • 打开 Anaconda Navigator 并点击 Environment
  • (为 base(root) 环境安装,这将是全新安装 Navigator 后的默认设置)选择 Not Installed 并点击 Update Index ...按钮
  • pyarrow 应该会出现在可用软件包的更新列表中。
  • 点击应用按钮并安装

这就是安装 pyarrow 以便能够在 Windows Python 中使用 .feather 格式文件

我没有直接在 Conda(Anaconda Navigator 之外)中对此进行测试,但我认为 that the Conda command line install instruction in Apache documentation 在他们的 Windows 机器上使用 64 位 Python 开始时工作得很好。还会提到 Mac OS X Python 默认是 64 位的,所以这个线程解决了一个特定于 Windows 的注意事项。

【讨论】:

  • 真的,一般来说没有理由使用 32 位 Anaconda,它会带来内存限制,并且在许多情况下可能会稍微慢一些。我假设您正在使用 Anaconda 进行数据分析,因此您当然想要 64 位安装带来的扩展内存支持。
  • 是的。你说的对。我从这次经历中学到了一些东西。在我的辩护中,这两个版本并排放置在 Anaconda 安装页面上,而没有指导用户如何选择。当我(不久前)进行安装时,我确信我的内部想法是 32 位的存在时间更长,所以它是安全的。
【解决方案2】:

在安装pyarrow之前,需要在这个页面安装依赖:https://www.microsoft.com/en-us/download/details.aspx?id=48145。另外,如果你安装了visual studio,可能有vc_redist-2015-2019之类的包,把它删掉,确保可以安装这两个包。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-29
    • 2021-04-18
    • 2020-04-06
    • 1970-01-01
    • 2018-08-03
    • 1970-01-01
    • 2017-07-05
    • 1970-01-01
    相关资源
    最近更新 更多