使用lxml的Azure WebJob总是失败…为什么?

2024-04-26 10:52:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉Azure和Python,我正在尝试在Azure中运行Python脚本作为一个webjob。我知道我需要在webjob中包含所有的包文件,但是我认为我缺少一些导致错误的依赖项。以下是错误日志:

[01/28/2015 03:53:29 > 52e03f: SYS INFO] Status changed to Initializing
[01/28/2015 03:53:35 > 52e03f: SYS INFO] Run script 'get_teams_espn.py' with script host - 'PythonScriptHost'
[01/28/2015 03:53:35 > 52e03f: SYS INFO] Status changed to Running
[01/28/2015 03:53:36 > 52e03f: ERR ] Traceback (most recent call last):
[01/28/2015 03:53:36 > 52e03f: ERR ]   File "get_teams_espn.py", line 45, in <module>
[01/28/2015 03:53:36 > 52e03f: ERR ]     teams_dict = teams_espn(url)
[01/28/2015 03:53:36 > 52e03f: ERR ]   File "get_teams_espn.py", line 23, in teams_espn
[01/28/2015 03:53:36 > 52e03f: ERR ]     soup = BeautifulSoup(r.content, 'lxml')
[01/28/2015 03:53:36 > 52e03f: ERR ]   File "site-packages\bs4\__init__.py", line 152, in __init__
[01/28/2015 03:53:36 > 52e03f: ERR ]     % ",".join(features))
[01/28/2015 03:53:37 > 52e03f: ERR ] bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?
[01/28/2015 03:53:37 > 52e03f: SYS INFO] Status changed to Failed
[01/28/2015 03:53:37 > 52e03f: SYS ERR ] Job failed due to exit code 1

以下是我的进口:

^{pr2}$

我还需要什么其他包才能使这个脚本正常工作?或者我没有设置脚本来查找包文件吗?请帮忙,谢谢!在


Tags: toinpyinfo脚本getstatussys
1条回答
网友
1楼 · 发布于 2024-04-26 10:52:20

我能够使用不能直接在Azure环境中构建的python包。例如,如果希望包含依赖于lxml绑定的包。这个问题可以通过告诉Azure环境直接从wheels文件安装而不是下载远程资源并编译它来解决。在

创建文件夹:

mkdir wheelhouse

Gohlke's Unofficial Windows Binaries获取合适的lxmlwheels二进制文件,并将其复制到“wheelhouse”目录中。对我来说是版本 lxml-3.6.0-cp34-cp34m-win32.whl完成了任务。 我不得不将lxml-3.6.0-cp34-cp34m-win32.whl重命名为lxml-3.6.0-py3-none-any.whl才能正常工作。最后,确保在requirements.txt中包含第1行中的以下内容:

^{pr2}$

第一行告诉部署中的pip不要检查远程源,第二行告诉在哪里查找安装包。在

我还在本地为与web应用程序相关的包创建了wheels文件。重要的是要解析所有依赖项,并将wheels文件放入wheelhouse目录中。在

相关问题 更多 >