我在尝试本地运行我的Azure函数时,在VS代码中的Python设置有一点不一致的问题。我试图避免使用VS代码自动为Azure函数项目设置的“venv”环境,而是使用我预先创建的conda环境,并安装了所有要求。只是为了澄清,这是关于本地部署而不是Azure门户。
myfunc__init__.py:
import json
import logging
import time
import azure.functions as func
import pandas as pd # Import Error happens here!
def main(req: func.HttpRequest) -> func.HttpResponse:
...
字符串
.vscode\Settings.json:
{
// Local Machine Conda VENV (Define CONDAPATH in Windows Environment)
"python.condaPath": "%CONDAPATH%",
"python.pythonPath": "%CONDAPATH%\\envs\\azure\\python.exe",
"azureFunctions.pythonVenv": "%CONDAPATH%\\envs\\azure",
// Created Local VENV by VS Code (pythonPath is difference for MAC vs Windows)
//"azureFunctions.pythonVenv": ".venv",
// Azure Function Stuff
"azureFunctions.deploySubpath": ".",
"azureFunctions.scmDoBuildDuringDeployment": true,
"azureFunctions.projectLanguage": "Python",
"azureFunctions.projectRuntime": "~2",
"azureFunctions.preDeployTask": "func: pack --build-native-deps",
"debug.internalConsoleOptions": "neverOpen",
}
型
**注意:**如果我用conda的实际绝对路径替换%CONDAPATH%
,问题仍然存在。
在需要时,launch.json
配置如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "Linux_PyFunc",
"type": "python",
"request": "attach",
"port": 9091,
"preLaunchTask": "func: host start"
}
]
}
型
当VS Code运行函数时,部署完成,没有问题,并生成本地链接。一旦我通过Postman
调用函数,返回的是HTTP 500
状态,这是由于无法import pandas
与错误模块未找到。
如果我在settings.json
中设置"azureFunctions.pythonVenv": ".venv"
,函数将在本地部署,一旦被触发/调用,它将返回HTTP 200
状态和正确的响应。
所以,这给我带来了一个问题,如果VS代码支持Azure函数部署的conda环境,如果是这样,我在这里错过了什么?
2条答案
按热度按时间a2mppw5e1#
这是我所做的,以获得康达环境,而不是venv
查看settings.json文件。因为我已经安装了python扩展,并且已经为这个项目配置了解释器,所以我有一个名为
python.pythonPath
的设置。我想使用这个python而不是venv,所以我注解掉了venv设置。字符串
接下来编辑tasks.json。注意有一个pipInstall任务。我将widows命令更改为使用在设置中定义的
python.pythonPath
。旧值类似于
"command": "${config:azureFunctions.pythonVenv}/bin/python -m pip install...
,新值为"command": "${config:python.pythonPath} -m pip install...
型
sqougxex2#
对于任何人面临类似的问题,我已经结束了以下设置感谢布里格提供的答案:
.vscode\settings.json
字符串
.vscode\tasks.json
型