Azure DevOps Pipeline - 偶尔无法加载Python
我创建了一个ADO管道,用来把一些代码部署到PyPi仓库;不过,这个管道有时候会失败,并出现错误
python3: error while loading shared libraries: libpython3.9.so.1.0: cannot open shared object file: No such file or directory
这个管道的结构是一个使用Python版本
的模块,后面接着一个命令行脚本
的模块,而错误是在命令行脚本
中一调用Python时就出现了。
1 个回答
0
这个错误信息通常是因为你的Python项目需要的Python库的共享对象文件找不到。造成这个错误的一个常见原因是你所需的Python版本(在你的情况下是Python 3.9
)没有在你的机器上安装。
如果你是在自己的Linux机器上使用自托管的代理,确保你已经在代理机器上安装了
Python 3.9
,可以通过手动安装或者在管道中使用使用Python版本任务来完成。如果你使用的是微软托管的Linux代理(比如
ubuntu-22.04
(ubuntu-latest
)或ubuntu-20.04
),那么Python 3.9
已经预安装在这些代理上,并且相关的共享对象文件(libpython3.9.so.1.0
和libpython3.9.so
)也已经下载到Python 3.9
的安装目录中。在
ubuntu-22.04
(ubuntu-latest
)代理上,默认的Python版本是Python 3.10
。如果你想使用Python 3.9
,可以使用使用Python版本任务将3.9
设置为默认版本。在
ubuntu-20.04
上,默认的Python版本是Python 3.8
。
编辑:
根据你分享的YAML内容:
- task: UsePythonVersion@0
displayName: 'Use Python >=3.8'
inputs:
versionSpec: '>=3.8'
你在UsePythonVersion
任务中使用了设置"versionSpec: '>=3.8'
"。这个设置会安装最新的Python版本(目前是3.12
),而不是3.9
。
要安装3.9
版本,你应该使用设置"versionSpec: '3.9'
"。
- task: UsePythonVersion@0
displayName: 'Use Python 3.9'
inputs:
versionSpec: '3.9'