我想舉辦一個Python MLflow模型使用磚模型服務。而服務端點函數正確沒有私人Python包,我遇到困難的時候試圖包含它們。
我希望避免儲存私人PyPI純文本標記。自[init腳本與模型不支持服務,我不知道如何注入令牌,在構建時作為一個秘密。這是可能的嗎?
下麵這個教程,我建立了“whl”文件,上傳他們dbfs和上市在“pip_requirements”“mlflow.pyfunc.log_model”。不幸的是,無法找到文件dbfs在構建時,防止端點創建。
下麵是我日誌模型:
mlflow.pyfunc。log_model (“hello world”, python_model =模型,registered_model_name =“hello world”,簽名=簽名,input_example = input_example pip_requirements = [" / dbfs / FileStore /表/ private_package-0.1.10-py3-none-any。whl”),)
在pip_requirements我試過不同的路徑,文件的存在對dbfs驗證通過磚CLI。
我嚐試過“pip_requirements”:
——/ dbfs / FileStore……——dbfs / FileStore……——/ dbfs: / FileStore……- dbfs: / FileStore……
命令查看包磚筆記本:
dbutils.fs.ls (“dbfs: / FileStore /表/ private_package-0.1.10-py3-none-any.whl”)
構建日誌生成以下錯誤。
錯誤:無法安裝包由於OSError: [Errno 2]沒有這樣的文件或目錄:/ dbfs / FileStore /表/ private_package-0.1.10-py3-none-any。whl CondaEnvException: Pip失敗了
我的假設是,可能有一個權限錯誤,和主機可能沒有訪問dbfs磚模式。新磚,我不確定如何調試。任何指導或見解如何解決這個問題將不勝感激!
嗨@ericcbonet,錯誤消息表明,沒有這樣的文件或目錄位於“/ dbfs / FileStore /表/ private_package-0.1.10-py3-none-any.whl’。
這個錯誤可能發生在試圖安裝一個包,在指定的目錄中不存在。
為了解決這個問題,你可以嚐試以下步驟:
1。檢查文件是否存在於指定的目錄中運行% fs / ls / dbfs / FileStore /表
。如果文件不存在,您可能需要上傳到該目錄使用磚UI或CLI。
2。如果文件存在於指定的目錄,再次嚐試安裝使用% pip安裝/ dbfs / FileStore /表/ private_package-0.1.10-py3-none-any.whl
。
來源:
- - - - - -https://docs.m.eheci.com/libraries/notebooks-python-libraries.html install-a-private-package
嗨@Kaniz謝謝你回到我。
你附加的鏈接是為私人pip安裝包在一個筆記本上。如前所述在我的問題我可以安裝我的私人包(我上傳到dbfs)筆記本沒有問題。我的問題是安裝這個包模型服務。
運行命令你給我一個筆記本FileNotFoundException結果,而目錄與dbutils發現,看到下麵的截圖。
我充滿文件路徑從磚的筆記本我的python代碼,這一次有許多不同的路徑組合。我總是得到同樣的錯誤
錯誤:無法安裝包由於OSError: [Errno 2]沒有這樣的文件或目錄
此外,即使我可以調試問題即為什麼模型為碼頭工人構建環境沒有找到文件dbfs(我懷疑是權限相關的),我不是超級滿意這個工作流,必須更新dbfs和私人python包更新鏈接mlflow.pyfunc.log_model pip_requirements論點的。
會使這個過程更容易,如果一個秘密可以被構建環境,然後可以注入“conda。yaml文件通過一個init腳本。例如
# conda。yaml渠道:違約依賴性:python = 3.10 - pip皮普:- mlflow > = 2.5.0 boto3 > = 1.28.18 -公司私有化> = 0.1.10——index-url”https://aws: % % CODE_ARTIFACT_TOKEN % % @company中央- 1. - 0123456789. - d.codeartifact.eu - - amazonaws.com/pypi/company python - packages/simple/”名稱:mlflow-serving
. sh init腳本能做以下
sed - s / % % CODE_ARTIFACT_TOKEN % % / ${{秘密。conda.yaml code-artifact-token}} / g”
我意識到模型服務目前不支持init腳本,這是路線圖?或者你可以建議另一個工作流,所以我可以使用私人python包嗎?