这个问题是老问题,但我也遇到了同样的问题,在为。。太久了。。。我有一个对我有用的答案。在
首先,应该使用pip:pip install metis获得python metis包装器。在
其次,您必须安装conda metis,您可以找到here。尽管pip调用metis python包装器metis,但它只是metis包装器,没有metis本身。在
将文件放在conda metis master中的某个文件路径中。在
安装需要一些修复程序。确保你有一个最新版本的visualstudios(我用了2017年)。对我来说,VS在运行构建中的指令时遇到了问题-WINDOWS.txt文件,这让我想到了这个问题:
具体地说,对于windows10上的visualstudio2017和2019,我的答案是。运行:
set VCTargetPaths=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets
在命令提示符下以完全权限设置环境变量。在
还可以转到regedit中的Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\,并将4.0中的变量MSBuildOverrideTasksPath和{}中的变量MSBuildToolPath改为{}。在
对于python metis,我们需要一个.dll,而不是.lib[1],因此我们还必须进一步研究CMakeLists.txt(请参阅本文讨论的Linux版本here)。我们在第19行添加:set(METIS_LIBRARY_TYPE SHARED)。在
你应该跟着建造-WINDOWS.txt文件指令,但在命令提示符下以完全权限在conda metis文件路径内运行.\vsgen -G "Visual Studio 15 2017 Win64",而不是使用visualstudio10。在
等等!在遵循进一步使用VS构建库的说明之前,我们需要另一个修复程序。按照中所述:
我们必须通过删除#define rint(x) ((idx_t)((x)+0.5))行来编辑文件path_to_your_metis_dir\GKlib\gk_arch.h。(或this github exchange上列出的修复程序。)
然后转到path_to_your_metis_dir\build\windows\。在
在visualstudios中打开METIS.sln,转到顶部的Build,然后从向下滚动到{}。之后,.dll文件将位于path_to_your_metis_dir\build\windows\libmetis\Release\中。在
最后,我们在命令提示符下运行:
set METIS_DLL=path_to_your_metis_dir\build\windows\libmetis\Release\metis.dll
在这之后,python metis不再在我的步骤from metis import *上失败。在
[1]如果我们可以使用.lib,那么conda install -c conda-forge metis就可以得到这个文件,但是将METIS_DLL设置为.lib文件会导致windows错误。在