为什么我在安装了库的 Azure DevOps 管道中收到“ModuleNotFoundError:没有名为 'lxml' 的模块”错误

问题描述 投票:0回答:1

我正在尝试运行一个简单的 python 脚本,该脚本在本地运行良好,但在 DevOps 管道中继续遇到相同的错误。我已将库的安装包含在 yaml 文件中,并经过进一步测试确认它确实安装并且“pip list”显示了我需要的库(lxml)。

pip install --upgrade pip
pip install --target="./.python_packages/lib/site-packages" lxml
touch ./.python_packages/lib/site-packages/__init__.py

这些是我当前包含在 azure-pipelines.yml 文件中试图使其正常工作的行。

经过几个小时的挖掘,我发现了有类似问题的人的帖子,并找到了一些“解决方案”。 其他帖子提到的一件事是将包安装到 ./.python_packages/lib/site-packages 而不是仅仅运行“pip install lxml”,所以我尝试了这一点,但它仍然不起作用。 另一件事提到库目录中需要 'init.py' 文件,所以我添加了 'touch ./.python_packages/lib/site-packages/init.py' 行,但仍然不起作用。

我正在调查实际的库本身,并尝试查看其 lxml 是否特定,并尝试找出管道正在运行的 python 版本,以了解为什么它在本地工作而不是在管道上工作。当我试图弄清楚这些东西时,我想我应该将其发布在这里,看看其他人是否有任何想法、解决方案或遇到类似的问题。 感谢所有帮助!

python linux azure-pipelines lxml modulenotfounderror
1个回答
0
投票

问题已解决。修复非常简单,只需将 makefile 命令从

@python3 file.py
更改为
@usr/bin/python3 file.py
即可,与我最初想象的那样,与管道 yml 文件或 python 和库之间下载的方法/位置/版本无关。该项目背后有一个工具链,因此通过使用 python3,它使用的是没有所需库的工具链 python。希望这对将来的人有帮助。

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