尽管我使用的是 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 *
。