Как установить пакет METIS в Python на Windows? - PullRequest
0 голосов
/ 04 июня 2018

В настоящее время я использую исходный код на python, который использует METIS.Я хотел запустить его с помощью Jetbrains PyCharm, интерпретатор conda, и они установлены на Windows 10. Хотя я установил METIS с использованием conda, я не смог включить общие библиотеки и столкнулся с этой ошибкой:

ModuleNotFoundError: Модуль не назван'metis'

Когда я пытался запустить его без conda, я столкнулся со следующей ошибкой, хотя я добавил местоположение metis.dll в переменные среды.

RuntimeError: Не удалось загрузить METIS dll

Может ли кто-нибудь помочь мне с этим?

1 Ответ

0 голосов
/ 12 июля 2019

Этот вопрос старый, но я столкнулся с той же проблемой, и после того, как спустился по кроличьей норе ... слишком долго ... У меня есть ответ, который сработал для меня.

Во-первых, вы должны получитьоболочка python metis с использованием pip: pip install metis.

Во-вторых, Вы должны установить conda-metis , которую вы можете найти здесь .Хотя pip вызывает metis-оболочку metis python, она является просто оболочкой metis и не имеет самой metis.

Поместите файлы в conda-metis-master по какому-нибудь пути к файлу.

Установка требует некоторых исправлений.Убедитесь, что у вас последняя версия Visual Studios (я использовал 2017).Для меня VS была проблема с выполнением инструкций в файле BUILD-WINDOWS.txt, который привел меня к этой теме:

Почему вместо MSBuild выглядит C: \ для Microsoft.Cpp.Default.propsиз c: \ Program Files (x86) \ MSBuild?(ошибка MSB4019)

В частности, ответ Для Visual Studio 2017 и 2019 в Windows 10 был тем, с чем я пошел.Запустите:

set VCTargetPaths=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets

в командной строке с полными разрешениями для установки переменной среды.

Также перейдите к Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ в regedit и измените 4.0 переменную MSBuildOverrideTasksPath и ToolsVersion\4.0\ переменную MSBuildToolPath на C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin.

Для метисов python нам нужна .dll, а не .lib [1], поэтому мы также должны посмотреть на CMakeLists.txt (см. Версию Linux для обсуждения здесь ).Мы добавляем в строку 19: set(METIS_LIBRARY_TYPE SHARED).

Вы должны следовать инструкциям BUILD-WINDOWS.txt, но запускать .\vsgen -G "Visual Studio 15 2017 Win64" внутри пути к файлу conda-metis в командной строке с полными разрешениями вместо использования Visual Studio10.

Подождите!Нам нужно еще одно исправление, прежде чем следовать инструкциям по использованию VS для сборки библиотеки.Следуя тому, что было сказано в:

rint () проблема после создания VS Project с использованием CMake

, мы должны отредактировать файл 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\.

Откройте METIS.sln в Visual Studios, перейдите наверх к 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 приводит к ошибке Windows.

...