如何在Windows上的python中安装METIS包?

时间:2018-06-04 07:53:35

标签: python window shared-libraries metis

我目前在python中运行使用METIS的源代码。我想使用Jetbrains PyCharm,conda解释器运行它,这些安装在Windows 10上。虽然我已经使用conda安装了METIS,但我无法启用共享库,我遇到了这个错误:

ModuleNotFoundError:没有名为' metis'

的模块

当我尝试在没有conda的情况下运行它时,我遇到了以下错误,尽管我已将metis.dll位置添加到环境变量中。

RuntimeError:无法加载METIS dll

有人可以帮我解决一下吗?

1 个答案:

答案 0 :(得分:0)

这个问题很老,但是我遇到了同样的问题,在兔子的洞里钻了很长时间……我有一个对我有用的答案。

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

第二,您必须安装conda-metis ,您可以在其中找到here。尽管pip称其为metis python包装器metis,但它只是metis包装器,本身没有metis。

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

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

Why does MSBuild look in C:\ for Microsoft.Cpp.Default.props instead of c:\Program Files (x86)\MSBuild? ( error MSB4019)

特别是,答案对于Windows 10上的Visual Studio 2017和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的{​​{1}}和变量MSBuildOverrideTasksPath的{​​{1}}更改为ToolsVersion\4.0\

对于python metis,我们需要一个MSBuildToolPath,而不是C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin [1],因此我们还必须更仔细地研究.dll(请参阅本讨论的Linux版本{{ 3}})。我们在第19行添加:.lib

您应按照BUILD-WINDOWS.txt的说明进行操作,但要在命令提示符下的conda-metis文件路径中运行CMakeLists.txt,而不要使用Visual Studio 10,而应具有完全权限。

等等!在按照有关使用VS构建库的说明进行操作之前,我们需要另一个修复程序。遵循以下内容:

here

我们必须通过删除以下行来编辑文件set(METIS_LIBRARY_TYPE SHARED).\vsgen -G "Visual Studio 15 2017 Win64"。 (或rint() issue after creating VS Project using CMake上列出的修复程序。)

然后转到path_to_your_metis_dir\GKlib\gk_arch.h

在Visual Studio中打开#define rint(x) ((idx_t)((x)+0.5)),在顶部转到path_to_your_metis_dir\build\windows\,然后从下拉菜单转到METIS.sln。之后,Build文件将位于Build Solution中。

最后,我们在命令提示符下运行: .dll

此后,python metis不再对我的步骤path_to_your_metis_dir\build\windows\libmetis\Release\失败。

[1]如果我们可以使用set METIS_DLL=path_to_your_metis_dir\build\windows\libmetis\Release\metis.dll,则from metis import *将可以获取此文件,但是将.lib设置为conda install -c conda-forge metis文件会导致Windows错误。