首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在windows上的python中安装METIS软件包?

如何在windows上的python中安装METIS软件包?
EN

Stack Overflow用户
提问于 2018-06-04 07:53:35
回答 2查看 2.9K关注 0票数 4

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

ModuleNotFoundError:没有名为“metis”的模块

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

RuntimeError:无法加载METIS

有人能帮我一下吗?

EN

回答 2

Stack Overflow用户

发布于 2019-07-11 23:27:15

这个问题已经很老了,但我遇到了同样的问题,从兔子洞里跑了下来。太久了..。我有一个对我有用的答案。

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

其次,您必须安装conda-metis,您可以找到这里.尽管pip调用metis python包装器metis,但它只是metis包装器,而没有metis本身。

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

安装需要一些修复。确保你有一个最新版本的视觉工作室(我用了2017年)。对我来说,VS运行BUILD-WINDOWS.txt中的指令时遇到了问题,这使我不得不执行以下线程:

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

具体来说,我在Windows10Windows上使用了For 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,在ToolsVersion\4.0\中将变量MSBuildToolPath更改为C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin

对于python,我们需要一个.dll,而不是.lib1,所以我们还必须仔细查看CMakeLists.txt (参见本文讨论的这里的Linux )。我们在第19行添加:set(METIS_LIBRARY_TYPE SHARED)

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

等等!在进一步使用VS构建库之前,我们需要进行另一个修复。如下文所述:

使用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中打开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

在此之后,python在我的步骤from metis import *上不再失败。

1如果我们可以使用.lib,那么conda install -c conda-forge metis就可以获得这个文件,但是将METIS_DLL设置为.lib文件会导致窗口错误。

票数 2
EN

Stack Overflow用户

发布于 2022-06-11 18:34:00

在得到@晓建辰描述的错误后,我就是这样解决的(VS Studio 2022)。在上述修复之后,要在打开VS解决方案文件后生成一个.dll文件,请转到解决方案资源管理器,右键单击metis项目文件->属性。

在一般属性中,将配置类型更改为动态库(.dll)

通用属性窗口的屏幕截图

在高级属性下,将目标文件扩展名从.lib更改为.dll

高级属性窗口的屏幕截图

因为我们只需要metis.dll文件,所以在解决方案资源管理器中右键单击metis项目文件,然后单击build。.dll可以在..\build\windows\libmetis\Release中找到。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50675790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档