我有一个python azure functions应用程序通过azure devops部署在API_env虚拟环境中。同样,我有一个python flask应用程序。python后端和typescript前端。python后端是通过激活一个名为backend_env的不同虚拟环境来部署的。应用程序后端代码调用API,即它被部署为Azure功能。然而,一些使用的包,如openai,langchain等是在requirements.txt和API_env文件夹在azure函数应用程序,当我通过调试控制台查看它时,azure函数抛出模块未找到错误。我尝试了各种选择,即。除了通过devops管道激活API_env之外,我还在config设置中添加了该设置,但似乎没有什么帮助。有人能给我指个方向吗?
`YAML代码步骤:- 脚本:|python3.9 -m venv API_env source api_env/bin/activate pip install --upgrade setuptools pip3.9 install -r requirements.txt工作目录:$(Build.SourcesDirectory)/API/python displayName:'为API安装Python依赖项'
- task: AzureFunctionApp@1
inputs:
azureSubscription: 'spn'
appType: 'functionAppLinux'
appName: '$(knowbot-funcapp-name)'
package: '$(System.DefaultWorkingDirectory)/api/python'
startUpCommand: |
source api_env/bin/activate
func start --python
workingDirectory: '$(System.DefaultWorkingDirectory)/api/python'
displayName: 'Deploy Function App'`
还尝试在函数init中添加以下内容。py sys.path.append('/home/site/wwwroot/api_env/lib/python3.9/site-packages')
我期待API调用成功。
1条答案
按热度按时间oalqel3c1#
我尝试使用requirements.txt中的Openai模块在Azure Devops中部署具有虚拟环境的Function应用程序,并取得了成功,参考如下:
我的init.py代码:-
我的function.json代码:-
我的主机。json:-
我的要求. txt:-
我的YAML管道脚本:-
检查虚拟环境API_env是否在Function应用启动之前启动。在你的YAML代码中,你在安装依赖项之前运行虚拟环境,试着在你的函数开始之前启动你的虚拟环境,如下所示:
此外,验证虚拟环境的位置,您可以输入此命令以检查下面的系统路径:-
添加虚拟环境的完整路径,同时使用以下代码启动它:-