在Windows环境下安装sharedarray库

在Windows环境下安装sharedarray库

问题描述:

使用OpenPCDet中的SECOND模型学习,过程中需要安装sharedarray库,查找资料后发现,sharedarray库常用linux系统,在windows系统用起来比较麻烦。尝试去安装一下在windows中。

遇到的问题:没有CMake

  1. 到pytorch环境中输入以下代码,进行库的安装。
    pip install SharedArray
    
    报错
    ERROR: Could not build wheels for SharedArray which use PEP 517 and cannot be installed directly
    
    

​ 通过查询和询问gpt(还得是gpt救我):这个错误提示表明 pip 工具无法通过 PEP 517 规范构建 SharedArray 库的二进制 wheel 文件,因此无法直接从源代码安装。

解决方法:

  1. 安装 CMake

安装 CMake 可以解决此问题。在 Linux 系统中,可以使用以下命令安装 CMake:

复制代码sudo apt-get update
sudo apt-get install -y cmake

在 Windows 系统中,则可以在 CMake 的官方网站上下载 Windows 版本的 CMake 安装包并进行安装。

安装完成后,再次尝试使用 pip 安装 SharedArray 库即可。如果成功,pip 会自动构建并安装 wheel 文件。

  1. 直接从 GitHub 上获取源代码并使用 setup.py 进行安装

另一种方法是直接从 GitHub 上克隆 SharedArray 库的源代码,并使用 setup.py 脚本进行安装。可以使用以下命令:

复制代码git clone https://github.com/RainerKuemmerle/gpu-shared-array.git
cd gpu-shared-array
python setup.py install

这样做会将克隆下来的 SharedArray 项目从源代码编译为二进制文件并安装在系统中。

如果你仍然遇到了问题,请检查一下你的机器是否安装了所有必要的依赖库和工具。这些依赖库和工具包括 CUDA、cuDNN、GCC(或 MSVC)、Python、NumPy、CMake 等。如果缺少任何一个依赖库或工具,可能会导致 SharedArray 安装失败,进而触发错误提示。

这里我使用的方法1,去官网下载CMAKE。

遇到问题——CMAKE未配置环境变量

但是下载完成后,还是报错,ERROR: Could not build wheels for SharedArray which use PEP 517 and cannot be installed directly。也就是上次的错误,说明下载的CMAKE不对劲,我第一次直接下载的zip解压的,没有环境变量的配置,第二次下载的安装包,安装过程进行了环境配置。

当然也可手动进行环境配置。

在 Windows 系统中手动配置 CMake 的环境变量,可以依照以下步骤进行操作:

  1. 下载并安装 CMake

首先需要从 CMake 官网([1])下载并安装 Windows 版本的 CMake。安装过程中,请务必将 CMake 添加到系统 PATH 变量中。

  1. 打开环境变量设置窗口

在 Windows 操作系统中,打开「控制面板」,进入「系统和安全」栏目,点击「系统」选项,再点击左侧的「高级系统设置」链接。接着,在弹出的「系统属性」对话框中,点击「高级」选项卡,然后点击「环境变量」按钮进入环境变量设置窗口。

  1. 配置 CMake 的环境变量

在「环境变量」窗口中,找到系统变量列表中的「Path」变量,并点击「编辑」按钮。在编辑窗口中,点击「新建」按钮并输入 CMake 安装路径所在的文件夹路径。例如,如果 CMake 被安装到了 C:\Program Files\CMake\bin 文件夹中,则需要将 C:\Program Files\CMake\bin 添加到 Path 变量中。

  1. 验证环境变量是否设置成功

最后,打开一个新的命令行窗口,执行 cmake --version 命令进行验证。如果系统能够正常找到 CMake 的可执行文件并输出对应的版本号,则说明 CMake 环境变量已经设置成功。

在这里插入图片描述

遇到的问题——没有编译工具

于是乎我高高兴兴的又输入了:

pip install SharedArray

但是再次报错:

ERROR: Could not build wheels for SharedArray, which is required to install pyproject.toml-based projects

好家伙,又一个问题,怪不得麻烦。

缺少编译工具

询问gpt得到:

这个错误通常是由于缺乏必要的编译工具或库所导致的。在 Windows 系统上,可以通过安装 Microsoft Visual C++ Build Tools 来获得编译所需的工具和库。

请依照以下步骤进行操作:

  1. 安装 Microsoft Visual C++ Build Tools

从 Microsoft 的官方网站[1]下载并安装最新版本的 Microsoft Visual C++ Build Tools。该工具集包括了在 Windows 上编译大多数 C++ 项目所需要的工具和库。

  1. 安装 SharedArray

在成功安装 Microsoft Visual C++ Build Tools 之后,再次使用 pip 命令安装 SharedArray 库即可:

pip install SharedArray

如果仍然遇到问题,请尝试在安装命令中添加 --no-binary :all: 选项:

pip install --no-binary :all: SharedArray

这样做会强制 pip 在本地重新编译 SharedArray 库,并将其安装到系统中。

下载Microsoft Visual C++ Build Tools

这里我们选择了方法一,还是去下载了Microsoft Visual C++ Build Tools,绕不过啊绕不过,服啦。下载了一会,大概8个G吧。

具体安装过程:

安装 Microsoft Visual C++ Build Tools 的详细步骤:

  1. 打开 Microsoft 官方网站的下载页面[1],点击页面中的“Download”按钮。
  2. 在弹出的“Visual Studio 2019”页面中,勾选“C++ Build Tools”选项,并点击“Install”按钮。
  3. 下载并运行安装程序,根据提示完成安装。在安装过程中,您可以选择自定义安装,并根据需要选择额外的组件和功能。
  4. 安装完成后,打开命令提示符或 PowerShell 等命令行工具,并使用以下命令检查是否已成功安装 Microsoft Visual C++ Build Tools:
cl.exe

如果输出类似于以下信息,则说明编译工具已正常安装:

Microsoft (R) C/C++ Optimizing Compiler Version XX.XX.XXXXX for x86
  1. 安装完成后,您就可以使用 pip 命令重新安装遇到问题的 Python 包了。
    在这里插入图片描述

配置Microsoft Visual C++ Build Tools环境变量

虽然下载好了。但是我估摸着还有问题,果然输入了cl.exe,没用。

如果在下载并安装了 Microsoft Visual C++ Build Tools 之后,输入 cl.exe 命令时提示“无效命令”,可能是由于系统环境变量没有正确设置导致的。可以按照以下步骤进行排查和修复:

  1. 确认是否安装了 Visual C++ Build Tools:确定在已安装的程序列表中是否存在 Visual C++ Build Tools,并检查其版本号和安装路径是否与所需的一致。
  2. 检查系统环境变量:在“计算机”或“此电脑”右键,选择“属性” > “高级系统设置” > “环境变量”,查找“Path”变量,并确保其包含 Visual Studio Build Tools 的安装路径。如果缺少该路径,则需要手动添加。
  3. 重新启动命令提示符:更改环境变量后,需要关闭所有命令提示符(包括 Visual Studio Build Tools 提供的)并重新打开,以使新的环境变量生效。
  4. 使用 Visual Studio 命令提示符:在 Visual Studio Build Tools 安装目录下找到 Visual Studio 命令提示符,并以管理员身份运行它。如果使用 Visual Studio 命令提示符可以正常运行 cl.exe 命令,则说明问题可能是由于环境变量设置不正确造成的。

我就知道,还得配置环境变量。这次还被gpt坑了一次。坑就不说了,这里给出正确配置的方法:

可以按照以下步骤手动添加 Microsoft Visual C++ Build Tools 的环境变量:

  1. 打开“控制面板”并选择“系统和安全”。
  2. 选择“系统”,然后在左侧菜单中选择“高级系统设置”。
  3. 在“系统属性”窗口中,选择“环境变量”按钮。
  4. 在“环境变量”窗口中,找到“系统变量”部分,并点击“新建”按钮。
  5. 在“新建系统变量”窗口中,输入“VCINSTALLDIR”(不含引号)作为“变量名”,然后将 Visual C++ Build Tools 的安装目录复制并粘贴到“变量值”文本框中。例如,如果 Visual C++ Build Tools 安装在 C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools 中,则将该路径复制到“变量值”文本框中,然后点击“确定”按钮。
  6. 找到“Path”变量,然后点击“编辑”按钮。
  7. 在“编辑环境变量”窗口中,点击“新建”按钮,并将 Visual C++ Build Tools 的 bin 目录路径添加到“变量值”文本框中。例如,如果 Visual C++ Build Tools 安装在 C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools 中,则将 C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14..\bin\HostX86\x64(注意替换 14.. 为实际的版本号)路径添加到“变量值”文本框中,然后点击“确定”按钮。
  8. 确认更改并关闭所有窗口。重启计算机并打开 Visual Studio 命令提示符,输入 cl.exe 或者 where cl.exe命令进行测试,如果成功执行,则说明环境变量已设置正确。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fGJ0tNfg-1683024617842)(C:\Users\zgh\AppData\Roaming\Typora\typora-user-images\image-20230502182430341.png)]

最后安装sharedarray

还是有问题:

Microsoft Visual C++ Build Tools安装成功 在安装 SharedArray时报错
fatal error C1083: 无法打开包括文件: “sys/mman.h”: No such file or directory
      error: command 'D:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.35.32215\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2

这个错误通常是由于缺少系统头文件所引起的。sys/mman.h 是 Linux 中的一个头文件,Windows 系统默认不包含该文件,因此在 Windows 平台上编译程序时会出现这个错误。

您可以尝试以下两种方法来解决这个问题:

  1. 安装 Windows 版本的 sys/mman.h:由于在 Windows 中不存在 sys/mman.h 这个头文件,因此您需要手动下载并安装它。可以从以下网站下载该头文件:https://github.com/witwall/mman-win32(注意:这个库并非由 Microsoft 或 Windows 官方提供,因此在使用前请自行评估风险)。将该头文件复制到正确的位置,然后重新运行安装脚本或命令。

  2. 使用 WSL 环境编译程序:WSL(Windows Subsystem for Linux)是一个 Windows 平台上的 Linux 子系统。如果您无法在 Windows 平台上找到所需的头文件或编译工具,可以考虑在 WSL 环境下编译程序。这样做可以让您轻松地使用 Linux 上的开发工具和库。您可以先在 Windows 上安装 WSL 和所需的 Linux 发行版,然后在 WSL 环境中编译程序。请注意,在 WSL 环境中工作时,您需要确保正确设置编译环境,并使用正确的编译工具和命令。

    以下是具体步骤:

    1. 在您计算机上,找到或创建一个空白目录,用于存放 sys/mman.h 文件及其依赖项。
    2. 从 github 上下载 mman-win32 [【URL】(https://github.com/witwall/mman-win32)] 库的源码(包含了所需的 sys/mman.h 文件),并将其解压到第一步中创建的目录中。
    3. 打开 Visual Studio 或其他编译器,打开您的项目,并添加以下头文件搜索路径:{mman-win32 目录}\include。
    4. 添加链接器指令(libmman.a)以链接库:{mman-win32 目录}\lib。

    完成上述步骤后,您应该就能够在 Windows 平台上使用 sys/mman.h 头文件了。请注意,这种方法适用于 x64 位 Windows 系统。

o 或其他编译器,打开您的项目,并添加以下头文件搜索路径:{mman-win32 目录}\include。
4. 添加链接器指令(libmman.a)以链接库:{mman-win32 目录}\lib。

完成上述步骤后,您应该就能够在 Windows 平台上使用 sys/mman.h 头文件了。请注意,这种方法适用于 x64 位 Windows 系统。

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值