首页 > 编程问答 >如何在 ARM64 上的 Windows 上安装 SciPy 和 Numpy

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

时间:2024-08-06 15:11:43浏览次数:11  
标签:python numpy scipy windows-arm64

我需要 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 失败


遇到的错误消息“需要 Microsoft Visual C++ 14.0 或更高版本”表明的系统上缺少构建 NumPy 等软件包所需的必要 C++ 编译器。尽管使用的是 Windows on ARM64,但仍然需要使用 Microsoft Visual C++ 编译器工具链来构建这些库。

以下是成功安装 SciPy 和 NumPy 的步骤:

  1. 安装 Microsoft Visual C++ 生成工具:
  2. 从以下网址下载 Microsoft Visual C++ 生成工具:https://visualstudio.microsoft.com/visual-cpp-build-tools/
  3. 在安装过程中,请确保选择“使用 C++ 进行桌面开发”工作负载。这将安装必要的 C++ 编译器和工具。

  4. 使用预构建的轮子文件:

  5. 由于从源代码构建在 Windows on ARM64 上可能很复杂,因此建议使用预构建的轮子文件。
  6. 可以从以下网址找到用于 ARM64 的 Python 软件包的非官方 Windows 二进制文件:https://www.lfd.uci.edu/~gohlke/pythonlibs/
  7. 从该网站下载 NumPy 和 SciPy 的相应 .whl 文件,以匹配的 Python 版本(3.11)和系统体系结构(arm64)。

  8. 使用 pip 安装轮子文件:

  9. 打开命令提示符或 PowerShell 窗口。
  10. 使用 cd 命令导航到下载 .whl 文件的目录。
  11. 使用以下命令安装轮子文件: pip install numpy-*.whl pip install scipy-*.whl
  12. numpy-*.whl scipy-*.whl 替换为实际的文件名。

成功安装 NumPy 和 SciPy 后,应该能够在 Python 脚本中导入它们,而不会出现任何问题。

关于在 WinPE 中运行,需要确保 WinPE 环境具有运行 Python 脚本以及 NumPy 和 SciPy 所依赖的必要依赖项。这可能涉及将所需的 DLL 文件复制到 WinPE 环境中,并设置必要的环境变量。

请记住,Windows on ARM64 仍然是一个相对较新的平台,并且与 Python 软件包的兼容性可能会因软件包而异。使用预构建的轮子文件通常是为该平台安装此类科学计算库最简单、最可靠的方法。

标签:python,numpy,scipy,windows-arm64
From: 75762998

相关文章

  • Python科研武器库 - 字符串操作 - 字符串开头结尾判断 startswith() endswith()
    使用场景:按照开头的前缀、结尾的后缀来判断、筛选目标字符串。使用函数:str.startswith(search_string,start,end)str.endswith(search_string,start,end)search_string:要匹配的目标字符串。start:要从中匹配search_string的str的起始索引。end:要考虑匹配的str的结......
  • 我正在 python 中使用 aspose.pdf 将 pdf 转换为 excel 。但问题是它只能将 pdf 的前
    `从tkinter导入*将aspose.pdf导入为ap从tkinter导入文件对话框importpandasaspdinput_pdf=filedialog.askopenfilename(filetypes=(("PDF文件",".pdf"),("所有文件",".")))output_file=filedialog.asksaveasfil......
  • 如何在selenium python中访问电子邮件中的所有文件夹
    我使用imaplib库,但有时无法访问某些帐户,我使用poplib但它只支持访问主邮箱,但不支持访问其他文件夹,如垃圾邮件我想使用imaplib,但不会出现有时甚至无法访问的错误尽管我有一个帐户,但我仍然可以访问它,或者是否有另一个库可以快速支持该帐户?你想要使用Selenium和Python......
  • python安装torch-cluster、torch-scatter、torch-sparse和torch-geometric | torch_ge
    1.检查CUDA版本【方法1】用nvidia-smi已装cuda,用nvidia-smi或nvcc-V查看【方法2】用torch已装torch,用torch代码打印importtorchprint(torch.__version__)#查看pytorch安装的版本号print(torch.cuda.is_available())#查看cuda是否可......
  • Python:学生成绩管理系统(大学编程期末实验)
    引言在这个信息时代,教育管理的自动化已成为提高效率的关键。本文将介绍如何使用Python开发一个学生成绩管理系统,旨在简化成绩记录、查询和分析的过程。创作灵感来源本项目灵感来源于我在教育机构的工作经历,以及对提高教育管理效率的持续追求。通过复盘过往项目,我意识到一个......
  • 手把手教你使用Python网络爬虫下载一本小说(附源码)
    大家好,我是Python进阶者。前言前几天【磐奚鸟】大佬在群里分享了一个抓取小说的代码,感觉还是蛮不错的,这里分享给大家学习。一、小说下载如果你想下载该网站上的任意一本小说的话,直接点击链接进去,如下图所示。只要将URL中的这个数字拿到就可以了,比方说这里是951,那么这个数字......
  • 借助 Transformer 实现美股价格的预测(Python干货)
    作者:老余捞鱼原创不易,转载请标明出处及原作者。写在前面的话:      Transformer是一种在自然语言处理等领域广泛应用的深度学习架构,与传统的循环神经网络(RNN)相比,Transformer可以并行处理输入序列的各个位置,大大提高了计算效率。而且通过多层的深度堆叠,能够学习......
  • 将 Mojo 与 Python 结合使用
    Mojo允许您访问整个Python生态系统,但环境可能会因Python的安装方式而异。花些时间准确了解Python中的模块和包的工作原理是值得的,因为有一些复杂情况需要注意。如果您以前在调用Python代码时遇到困难,这将帮助您入门。Python中的模块和包让我们从Python开始,如......
  • Mojo和Python中的类型详解
    调用Python方法时,Mojo需要在原生Python对象和原生Mojo对象之间来回转换。大多数转换都是自动进行的,但也有一些情况Mojo尚未处理。在这些情况下,您可能需要进行显式转换,或调用额外的方法。Python中的Mojo类型Mojo基本类型隐式转换为Python对象。目前支持的......
  • python绘制圆柱体
     importosimportrandomimportnumpyasnpimportmatplotlib.pyplotasplt#合成管道数据集defplot_cylinder(center,radius,height,num_points=100):#生成圆柱体的侧面点坐标theta=np.linspace(0,2*np.pi,num_points)intervalZ=np.floor(h......