带有脚本包的 Azure ML Python 无法导入模块
Azure ML Python with Script Bundle cannot import module
在 Azure ML 中,我正在尝试执行需要导入模块 pyxdameraulevenshtein (https://pypi.python.org/pypi/pyxDamerauLevenshtein) 的 Python 模块。
我按照通常的方式,创建一个zip文件,然后导入;但是对于这个特定的模块,它似乎永远无法找到它。错误信息和往常一样:
ImportError: 没有名为 'pyxdameraulevenshtein'
的模块
有没有人成功地将这个 pyxdameraulevenshtein 模块包含在 Azure ML 中?
(我从https://pypi.python.org/pypi/pyxDamerauLevenshtein取了包裹。)
感谢您提供的任何帮助,
PH
将 pyxdameraulevenshtein
的路径添加到您的系统路径应该可以缓解这个问题。该脚本会检查 python 脚本 运行 所在的系统路径,并且不知道除了默认包之外还能在哪里寻找任何东西。如果您的 python 脚本与 ZIP 文件中的 pyxdameraulevenshtein
包位于同一目录中,这应该可以解决问题。因为您是在 Azure ML 中 运行 执行此操作,并且每次 运行 都无法确定脚本的确切位置,所以此解决方案应该考虑到这一点。
import os
import sys
sys.path.append(os.path.join(os.getcwd(), 'pyxdameraulevenshtein'))
import pyxdameraulevenshtein
我查看了 pyxdameraulevenshtein
模块页面,您可以下载两个包,其中包括用于 MacOS 的 wheel 文件和源代码 tar 文件。我不认为你可以直接在 Azure ML 上使用两者,因为 MacOS 一个只是 darwin 的共享库 .so
文件,它与 Azure ML 不兼容,另一个你需要先编译它。
所以我的建议是使用pyxdameraulevenshtein
。
- 首先将
pyxdameraulevenshtein
的源代码编译成Windows上的DLL文件,请参考Python2/3的文档或搜索doing this。
- 使用您编译的DLL编写一个Python脚本来实现您的需求,请参考SO线程How can I use a DLL file from Python? for how to use DLL from Python and refer to the Azure offical tutorial编写您的Python脚本
- 将您的 Python 脚本和 DLL 文件打包为 zip 文件,然后上传 zip 文件以在 Azure ML 的
Execute Python script
模型中使用它。
希望对您有所帮助。
在 Azure ML 中,我正在尝试执行需要导入模块 pyxdameraulevenshtein (https://pypi.python.org/pypi/pyxDamerauLevenshtein) 的 Python 模块。
我按照通常的方式,创建一个zip文件,然后导入;但是对于这个特定的模块,它似乎永远无法找到它。错误信息和往常一样:
ImportError: 没有名为 'pyxdameraulevenshtein'
的模块有没有人成功地将这个 pyxdameraulevenshtein 模块包含在 Azure ML 中?
(我从https://pypi.python.org/pypi/pyxDamerauLevenshtein取了包裹。)
感谢您提供的任何帮助,
PH
将 pyxdameraulevenshtein
的路径添加到您的系统路径应该可以缓解这个问题。该脚本会检查 python 脚本 运行 所在的系统路径,并且不知道除了默认包之外还能在哪里寻找任何东西。如果您的 python 脚本与 ZIP 文件中的 pyxdameraulevenshtein
包位于同一目录中,这应该可以解决问题。因为您是在 Azure ML 中 运行 执行此操作,并且每次 运行 都无法确定脚本的确切位置,所以此解决方案应该考虑到这一点。
import os
import sys
sys.path.append(os.path.join(os.getcwd(), 'pyxdameraulevenshtein'))
import pyxdameraulevenshtein
我查看了 pyxdameraulevenshtein
模块页面,您可以下载两个包,其中包括用于 MacOS 的 wheel 文件和源代码 tar 文件。我不认为你可以直接在 Azure ML 上使用两者,因为 MacOS 一个只是 darwin 的共享库 .so
文件,它与 Azure ML 不兼容,另一个你需要先编译它。
所以我的建议是使用pyxdameraulevenshtein
。
- 首先将
pyxdameraulevenshtein
的源代码编译成Windows上的DLL文件,请参考Python2/3的文档或搜索doing this。 - 使用您编译的DLL编写一个Python脚本来实现您的需求,请参考SO线程How can I use a DLL file from Python? for how to use DLL from Python and refer to the Azure offical tutorial编写您的Python脚本
- 将您的 Python 脚本和 DLL 文件打包为 zip 文件,然后上传 zip 文件以在 Azure ML 的
Execute Python script
模型中使用它。
希望对您有所帮助。