带有Script Bundle的Azure ML Python无法导入模块

问题描述 投票:2回答:2

在Azure ML中,我正在尝试执行需要导入模块pyxdameraulevenshtein(https://pypi.python.org/pypi/pyxDamerauLevenshtein)的Python模块。

我按照通常的方式,即创建一个zip文件,然后导入它;但是对于这个特定的模块,它似乎永远无法找到它。错误消息像往常一样:

ImportError:没有名为'pyxdameraulevenshtein'的模块

有没有人在Azure ML中成功包含这个pyxdameraulevenshtein模块?

(我从https://pypi.python.org/pypi/pyxDamerauLevenshtein拿了包裹。)

感谢您的任何帮助,您可以提供,

PH

python azure azure-machine-learning-studio
2个回答
1
投票

我查看了pyxdameraulevenshtein模块页面,您可以下载两个包,其中包括MacOS的wheel文件和源代码tar文件。我不认为你可以直接在Azure ML上使用这两者,因为MacOS只是darwin的共享库.so文件,它与Azure ML不兼容,另外你需要先编译它。

所以我的建议如下使用pyxdameraulevenshtein

  1. 首先,将pyxdameraulevenshtein的源代码编译为Windows上的DLL文件,请参阅Python 2 / 3的文档或搜索这样做。
  2. 使用您编译的DLL编写Python脚本以实现您的需求,请参阅SO线程How can I use a DLL file from Python?,了解如何使用Python中的DLL并参考Azure官方tutorial编写Python脚本
  3. 将您的Python脚本和DLL文件打包为zip文件,然后上传zip文件以在Azure ML的Execute Python script模型中使用它。

希望能帮助到你。


0
投票

pyxdameraulevenshtein的路径添加到系统路径应该可以缓解此问题。该脚本检查运行python脚本的系统路径,并且不知道在哪里查找除默认包之外的任何其他内容。如果您的python脚本与ZIP文件中的pyxdameraulevenshtein包位于同一目录中,那么这应该可以解决问题。因为您在Azure ML中运行它并且每次运行时无法确定脚本的确切位置,所以此解决方案应该考虑到这一点。

import os
import sys

sys.path.append(os.path.join(os.getcwd(), 'pyxdameraulevenshtein'))

import pyxdameraulevenshtein
© www.soinside.com 2019 - 2024. All rights reserved.