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,

  1. Сначала скомпилируйте исходный код pyxdameraulevenshtein к файлу DLL в Windows, пожалуйста, обратитесь к документу для Python 2/3 или выполните поиск для этого.
  2. Напишите скрипт Python, используя скомпилированную вами DLL-библиотеку, чтобы реализовать ваши потребности, обратитесь к разделу SO. Как я могу использовать файл DLL из Python? о том, как использовать DLL из Python и обратитесь к официальному учебнику по Azure, чтобы написать свой скрипт на Python
  3. Упакуйте ваш скрипт 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
Другие вопросы по тегам