0

我想在 windows7 上安装 METIS for python3.6。我做了以下步骤:

1-从 https://pypi.python.org/pypi/networkx-metis/下载源代码(tar.gz 或 zip 文件)

2-解压并将目录更改为源目录(它应该在顶层有 setup.py)。

3-运行

python setup.py build

建造

在这一步中,我遇到了以下错误:

error: Microsoft Visual C++ 14.0 is required.

我安装了“Visual Studio Tools 2017”,然后我再次运行代码。我遇到了以下错误:

error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 
14.0\\VC\\BIN\\cl.exe' failed with exit status 2

如果您回答我的问题,我将不胜感激。

4

1 回答 1

1

尽管我使用的是 Windows 10,但也许我在此处列出的相同步骤可能对您有用。

首先,您应该使用 pip: 获取 python metis 包装器pip install metis

其次,您必须安装 conda-metis,您可以在此处找到它。请注意,它不需要您安装 Anaconda 即可工作。

将文件放在 conda-metis-master 的某个文件路径中。

安装需要一些修复。确保您拥有最新版本的 Visual Studios(我使用的是 2017)。对我来说,VS 在运行 BUILD-WINDOWS.txt 中的指令时遇到了问题,这让我进入了这个线程:

为什么 MSBuild 在 C:\ 中查找 Microsoft.Cpp.Default.props 而不是 c:\Program Files (x86)\MSBuild?(错误 MSB4019)

具体来说,Windows 10 上的 Visual Studio 2017 和 2019的答案就是我所采用的。由于您使用的是 Windows 7,因此对您来说可能会有所不同。

对于 python metis 包,我们需要生成一个metis.dll,而不是metis.lib文件,因此我们还必须仔细查看(请参阅此处CMakeLists.txt讨论的 Linux 版本)。我们在第 19 行添加:.set(METIS_LIBRARY_TYPE SHARED)

您应该遵循 BUILD-WINDOWS.txt 说明,但.\vsgen -G "Visual Studio 15 2017 Win64"在命令提示符下以完全权限运行 conda-metis 文件路径,而不是使用 Visual Studio 10。

在继续使用由上述命令生成的文件之前path_to_your_metis_dir\build\windows\,我们需要另一个修复。按照中所说的:

使用 CMake 创建 VS 项目后的 rint() 问题

我们必须path_to_your_metis_dir\GKlib\gk_arch.h通过删除以下行来编辑文件:#define rint(x) ((idx_t)((x)+0.5)). (或此 github 交换中列出的修复程序。)

然后去path_to_your_metis_dir\build\windows\

在 Visual Studios 中打开METIS.sln,转到顶部Build并从向下滚动转到Build Solution. 之后,该.dll文件将位于path_to_your_metis_dir\build\windows\libmetis\Release\.

最后,我们在命令提示符下运行: set METIS_DLL=path_to_your_metis_dir\build\windows\libmetis\Release\metis.dll

在此之后,当我使用 step 将它导入到我的代码中时,python metis 不再失败from metis import *

于 2019-07-12T08:42:23.783 回答