如何在ARM64上的Windows系统中安装SciPy和Numpy

3

我需要numpy和scipy来执行一些信号分析。有人成功做到这点吗?(我希望本地运行,而不是通过virtualenv)。我的最终目标是从使用numpy和scipy的python脚本构建一个exe,可以在WinPE上进行测试。

我已经成功安装了Python 3.11.2,并且能够进行numpy安装,但在安装时也失败了。

  INFO: unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
  running build_src
  INFO: build_src
  INFO: building py_modules sources
  creating build
  creating build\src.win-arm64-3.11
  creating build\src.win-arm64-3.11\numpy
  creating build\src.win-arm64-3.11\numpy\distutils
  INFO: building library "npymath" sources
  error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
  [end of output]

注意:此错误源自子进程,可能与pip无关。 错误:无法构建numpy轮。 无法构建numpy。


1
Python 3.11在Windows on ARM64平台上的实验性Wheel可在https://github.com/cgohlke/win_arm64.whl/获取。 - cgohlke
3个回答

2

这将是一个有趣的练习。如果您有构建软件的经验,请直接开始。如果您是新手,则可能需要不同的方法。

要构建numpy和scipy的windows+ARM本机包:

  • 您不仅需要C/C++编译器,还需要Fortran编译器。我不确定gfortran是否适用于WinARM(这是我们通常用来构建scipy wheels的)。ifort是另一个要考虑的编译器。scipy wheels使用gcc/g++/gfortran制作。
  • 您需要从源代码下载+构建BLAS库。scipy/numpy项目通常使用OpenBLAS。
  • 您需要为所有构建时间依赖项构建+安装软件包。即Cython、pybind11、(pythran)、meson、meson-python、ninja。其中一些可能有自己的依赖关系。其中有几个具有OS/arch独立的wheels,但并非全部。
  • 一旦您构建了所有这些内容,您将构建numpy,然后构建scipy。

这是一个庞大的任务,即使在这样做Windows + ARM时,其中一些软件包可能会出现漏洞。

你可以使用模拟的Python环境吗?例如,Windows + ARM允许x86_64 Python解释器运行吗?或者你可以使用WSL来运行Python解释器吗?

1

这可能是因为您需要安装 Microsoft Visual C++ 14.0 或更高版本才能构建numpy,您可以在此处下载最新的构建工具 https://visualstudio.microsoft.com/visual-cpp-build-tools/

然后您应该可以在命令提示符中使用以下命令安装numpy和SciPy

pip install numpy scipy

0
Numpy和Scipy目前尚未为Windows Arm64提供预构建的二进制轮,并且需要在安装过程中从源代码进行构建。您需要安装带有C/C++工具链的Visual Studio 2019。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接