簡體   English   中英

python 軟件包未通過 CI/CD 管道安裝,導入錯誤,未找到 package

[英]python packages are not installed throughCI/CD pipelines,import error , package not found

介紹與解釋

我正在嘗試通過 CI.CD 管道將我的代碼部署到 azure function 應用程序(基於 Linux,python 代碼)。 起初它工作正常,但經過幾次部署,我是導入錯誤,找不到庫。 當我檢查工件時,缺少所需的庫文件。 我沒有更改 azure-pipelines.yml 文件中的任何內容。在 azure-pipelines.yml 中,我添加了 python 的腳本以從 requirements.txt 安裝庫。 有人知道嗎

我試過的

我還在 yml 文件中添加了那些 bash 命令,但同樣的問題。

 bash: |
cd sub_folder
python3.6 -m venv worker_venv
source worker_venv/bin/activate
pip3.6 install setuptools
pip3.6 install -r requirements.txt
displayName: 'Install application dependencies'.

問題

我看到的另一個問題是,

Result: Failure Exception: ImportError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /home/site/wwwroot/worker_venv/lib/python3.6/site-packages/pyodbc.cpython-36m-x86_64-linux-gnu.so). Troubleshooting Guide: https://aka.ms/functions-modulenotfound Stack: File "/azure-functions-host/workers/python/3.6/LINUX/X64/azure_functions_worker/dispatcher.py", line 275, in _handle__function_load_request func_request.metadata.entry_point) File "/azure-functions-host/workers/python/3.6/LINUX/X64/azure_functions_worker/utils/wrappers.py", line 34, in call raise extend_exception_message(e, message) File "/azure-functions-host/workers/python/3.6/LINUX/X64/azure_functions_worker/utils/wrappers.py", line 32, in call return func(*args, **kwargs) File "/azure-functions-host/workers/python/3.6/LINUX/X64/azure_functions_worker/loader.py", line 76, in load_function mod = importlib.import_module(fullmodname) File "/usr/local/lib/python3.6/importlib/init.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 994, in _gcd_import File "", line 971, in _find_and_load File "", line 941, in _find_and_load_unlocked File "", line 219, in _call_with_frames_removed File "", line 994, in _gcd_import File "", line 971, in _find_and_load File "", line 955, in _find_and_load_unlocked File "", line 665, in _load_unlocked File "", line 678, in exec_module File "", line 219, in _call_with_frames_removed File "/home/site/wwwroot/JFG_MATCHMERGE/init.py", line 7, in import pyodbc

您可以在管道中將變量system.debug 設置為 true ,然后將新構建排隊以獲取調試日志。 查看日志以檢查從 requirements.txt 安裝庫的目錄,以及在使用Publish Build Artifacts 任務發布工件時是否包含此目錄。 請參閱: 查看日志以診斷管道問題以獲取指導。

請參閱此 github 線程https://github.com/Azure/azure-functions-python-worker/issues/818

對於那些從谷歌登陸這里的人,這里的答案是將你的構建代理從ubuntu-20.04降級到ubuntu-18.04

如果在 Azure DevOps 中使用經典構建管道設計器,這意味着在構建管道中更改構建代理規范......

在此處輸入圖像描述

如果使用 github 動作 yaml 管道,這意味着

jobs:
  build-and-deploy-to-Azure:
    runs-on: ubuntu-18.04

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM