此文章仅用于分享如何安装,参考了两位大佬的知乎,知乎:pofatoezil,dongZheX,本文也主要是模仿pofatoezil的知乎写法以及顺序,只是在自己稍微总结了一下,并且在最后一步使用了不同的方法(原方法每次import metis前都要定义一次METIS_DLL)。
1、需要准备的软件(文件夹)从Metis的官网下载Metis,并且下载压缩包,conda-metis,VS2019,下载完成后将Metis和conda-metis的文件分别解压,得到文件夹
2、安装步骤 1、修改注册表在window搜索里输入regedit,打开注册表,找到HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuild路径
(1)修改该路径下.4.0中的数值数据为C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuild15.0Bin
(2)修改该路径下.ToolVersion4.0中的数值数据为C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuild15.0Bin
2、修改CMakeList.txt在一开始的时候,我还没看到pofatoezil的回答,我生成的是.lib文件,后面发现python 需要的是.dll文件。
编辑刚刚解压的文件conda-metis-master
conda-metis-master/CMakeLists.txt,在第19行加入
set(METIS_LIBRARY_TYPE SHARED)3、修改metis.h(option)
打开conda-metis-masterincludemetis.h,将 #define IDXTYPEWIDTH 32 该为
#define IDXTYPEWIDTH 644、确定Cmake与VS是否匹配
在conda-metis-master文件夹里进入命令行(cmd)输入下列指令
cmake--help
如果能正确运行,应该就能看到一大堆东西,其中就有"Visual Studio 16 2019"等等
5、在刚刚的命令行窗口里面继续运行.vsgen -G "Visual Studio 16 2019" -A x64
在运行此代码后,在conda-metis-masterbuildwindows下应该会出现很多的文件,如METIS.sln
6、修改gk_arch.h找到文件conda-metis-masterGKlibgk_arch.h,编辑
找到 #define rint(x) ((idx_t)((x)+0.5)),在前面加两条//,效果如下
//#define rint(x) ((idx_t)((x)+0.5))7、生成metis.dll文件
使用VS打开conda-metis-masterbuildwindowsMETIS.sln文件,选择Release和x64,然后点击生成(B),再点击生成解决方案(B)
这一步运行有可能会报错,不过报错也没关系,可以看看文件夹conda-metis-masterbuildwindowslibmetisRelease是否有metis.dll文件,如果有就可以了。
8、设定METIS_DLL环境变量在命令行窗口运行下列代码,your path这里记得换回你conda-metis-master的路径前缀。
setx METIS_DLL <'your path'>conda-metis-masterbuildwindowslibmetisReleasemetis.dll
此代码不同于两位大神的做法,运行上述代码后,就不用每次导metis包的时候都要定义一次METIS_DLL
9、安装metis python warpper在命令行窗口输入下列代码
pip install metis
如果上述步骤都能运行,那应该可以在python里正常引用metis包了。
[1] Metis 5.1.0 安裝心得 in Win10 - 知乎
[2]Cluster-GCN代码运行环境配置攻略 - 知乎
[3]GitHub - menpo/conda-metis: Builds metis 5.1.0 using conda
[4]cmd 设置环境cmd环境变量命令set 设置永久环境变量命令setx_小蓝的博客-CSDN博客



