我正在尝试运行一个简单的 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 版本,以了解为什么它在本地工作而不是在管道上工作。当我试图弄清楚这些东西时,我想我应该将其发布在这里,看看其他人是否有任何想法、解决方案或遇到类似的问题。 感谢所有帮助!
问题已解决。修复非常简单,只需将 makefile 命令从
@python3 file.py
更改为 @usr/bin/python3 file.py
即可,与我最初想象的那样,与管道 yml 文件或 python 和库之间下载的方法/位置/版本无关。该项目背后有一个工具链,因此通过使用 python3,它使用的是没有所需库的工具链 python。希望这对将来的人有帮助。