Azure ML Python с Script Bundle не может импортировать модуль
В Azure ML я пытаюсь выполнить модуль Python, который должен импортировать модуль pyxdameraulevenshtein ( https://pypi.python.org/pypi/pyxDamerauLevenshtein).
Я следовал обычному способу - создать zip-файл, а затем импортировать его; однако для этого конкретного модуля он, кажется, никогда не сможет его найти. Сообщение об ошибке как обычно:
Ошибка импорта: нет модуля с именем "pyxdameraulevenshtein"
Кто-нибудь с успехом включил этот модуль pyxdameraulevenshtein в Azure ML?
(Я взял пакет с https://pypi.python.org/pypi/pyxDamerauLevenshtein.)
Спасибо за любую помощь, которую вы можете предоставить,
PH
2 ответа
Я смотрел pyxdameraulevenshtein
На странице модуля есть два пакета, которые вы можете скачать, включая файл колеса для MacOS и файл исходного кода tar. Я не думаю, что вы можете напрямую использовать оба на Azure ML, потому что MacOS один просто библиотека общего доступа .so
файл для darwin, который не совместим с Azure ML, а другой вам нужно сначала скомпилировать.
Так что мое предложение, как показано ниже pyxdameraulevenshtein
,
- Сначала скомпилируйте исходный код
pyxdameraulevenshtein
к файлу DLL в Windows, пожалуйста, обратитесь к документу для Python 2/3 или выполните поиск для этого. - Напишите скрипт Python, используя скомпилированную вами DLL-библиотеку, чтобы реализовать ваши потребности, обратитесь к разделу SO. Как я могу использовать файл DLL из Python? о том, как использовать DLL из Python и обратитесь к официальному учебнику по Azure, чтобы написать свой скрипт на Python
- Упакуйте ваш скрипт Python и DLL-файл как zip-файл, а затем загрузите zip-файл, чтобы использовать его в
Execute Python script
модель лазурного мл.
Надеюсь, поможет.
Добавление пути к pyxdameraulevenshtein
к вашей системной дорожке должен облегчить эту проблему. Сценарий проверяет системный путь, на котором выполняется скрипт python, и не знает, где еще искать что-либо, кроме пакетов по умолчанию. Если ваш скрипт Python находится в том же каталоге, что и pyxdameraulevenshtein
пакет в вашем файле ZIP, это должно сделать свое дело. Поскольку вы выполняете это в Azure ML и не можете быть уверены в точном расположении своего скрипта при каждом запуске, это решение должно учитывать это.
import os
import sys
sys.path.append(os.path.join(os.getcwd(), 'pyxdameraulevenshtein'))
import pyxdameraulevenshtein