gpt4 book ai didi

c++ - 如何让PyPy识别线性代数(Intel MKL、OpenBLAS)库?环境变量问题?

转载 作者:行者123 更新时间:2023-11-28 04:17:59 25 4
gpt4 key购买 nike

我安装了一个可以工作的 Python 3.6 版本,想试用 PyPy 的启发式算法。我使用本指南安装了 PyPy:How to use PyPy on Windows?并让它运行并安装例如openpyxl 模块来自:pypy3 -m pip install openpyxl

但是,在尝试安装 numpy 或 pandas 时,我收到以下错误消息:

“错误:需要 Microsoft Visual C++ 14.1。使用 Microsoft Visual C++ 构建工具获取它”:https://visualstudio.microsoft.com/downloads/ "

我尝试了以下所有解决方案:Microsoft Visual C++ 14.0 is required (Unable to find vcvarsall.bat)即:

  1. 更新了设置工具 pypy3 -m pip install --upgrade setuptools
  2. 安装了该问题评论中提到的各种 Microsoft Visual Studio/Build Tools。
  3. 尝试使用仅二进制选项安装 numpy pypy3 -m pip install --only-binary :all:numpy
  4. 尝试更新安装工具并从 VS 命令提示符安装 numpy。

这些都不适合我。我想到的最好的是它可能与环境变量有关。在 PyPy 文档 ( http://doc.pypy.org/en/latest/windows.html ) 中它说:

“安装将设置 VS140COMNTOOLS 环境变量,这是 distutils/setuptools 找到编译器的关键”

我在系统变量或用户变量中找不到这个变量。因此,我尝试制作一个新的 SYSTEMVARIABLE,名称 = VS140COMNTOOLS,值 = C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\Common7\工具。这是我机器上 VsDevCmd.bat 所在的路径,我认为它负责在安装 Microsoft Visual Studio 期间设置环境变量。

这确实改变了我的错误信息,但只会让它变得更糟/更长。另外,当我输入 pythonpypy3在我的命令提示符下,我得到以下信息:

! https://imgur.com/a/QvD3n4j

根据这个帖子What is the difference between these two lines, MSC v.1900 64 bit (AMD64) and MSC v.1914 32 bit (Intel)显示我安装了 C++ 编译器?

我的问题是:

  1. 环境变量的名称(“VS140COMNTOOLS”)重要吗?我假设它适用于 VisualStudio14,但值导致 VisualStudio19。
  2. 使用 SYSTEMVARIABLE 而不是 USER VARIABLE 来指向编译器是否正确?
  3. 如果我需要 Microsoft Visual C++ 14.1,所有较新的版本是否/是否也应该可行?
  4. 我的环境变量真的指向正确的目录吗?在这样的目录中需要什么才能使 PyPy 识别 C++ 编译器?
  5. 为什么我必须输入 pypy3 -m pip install <Package> ?而不是 pypy3 pip install <Package>这只会导致“FilenotFoundError”?
  6. 如何让 PyPy 识别编译器并正确安装 numpy 或 pandas?

编辑 1

使用 “VS 2019 的 x86 native 工具命令提示符” 并尝试 pypy3 -m pip install numpy不工作。我也发现了这个问题how can I install numpy on pypy on my 64 bit computer running Windows 64 bit?因为我找不到相应的环境变量:Environmental Variables我使用 set VS140COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build" 设置它并尝试了两者:pypy3 -m pip install numpypypy3 -m pip install numpy -v .可悲的是,这也没有解决问题,错误消息仍然是:enter image description here后来又说没有安装 Microsoft Visual C++ 14.1。

错误消息指出它在我的 PyPy/libs 文件夹中找不到多个库。有谁知道我需要安装什么才能找到这些库?

@马提普速度对我来说并不重要,因为我实际上不使用 numpy 进行计算。但是我使用 pandas 进行数据存储,这需要先安装 numpy。

在虚拟环境中安装 PyPy 是否更容易,还是我会在那里面临同样的问题?

最佳答案

运行 PyPy 时得到的提示指示它是用哪个编译器构建的,而不是找到了哪个编译器。即使 PyPy 可以找到它正在寻找的编译器,在 Windows 上本地构建 NumPy 也会导致 NumPy 版本变慢。 NumPy 确实需要像 OpenBLAS 或 Intel 的 MKL 这样的线性代数后端,而安装这些后端非常棘手。现在回答您的问题:

  1. 您可以为 32 位编译器启动 Visual Studio 命令行,然后在该 DOS 窗口中运行 PyPy,我很确定 NumPy 将会构建(但结果会比 vnedor 提供的二进制轮慢).

  2. 最终结果完全一样。 SystemVariable 将为所有用户设置,而 UserVariable 仅为您设置。

  3. 是的,可能吧。我没有2019年,只有2017年。

  4. PyPy 像常规 CPython 一样使用 setuptools 和 distutils 提供的服务。因此,该问题的答案与您在 CPython 中找到的答案相同。

  5. -m 表示“加载此模块”,因此您正在加载 pip 模块 并运行其代码。如果没有 -m,您将运行一个名为 pip文件,该文件在您的路径中不存在

  6. 前进的道路是让 PyPy 成为 Python 世界的一等公民。请敦促项目本身(pandas、numpy、scipy ...)为 PyPy 提供轮子,并要求 Anaconda 提供 PyPy 变体。

关于c++ - 如何让PyPy识别线性代数(Intel MKL、OpenBLAS)库?环境变量问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56154988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com