Python中的Azure函数应用无法看到模块

osh3o9ms  于 2023-11-21  发布在  Python
关注(0)|答案(2)|浏览(136)

我将Azure Function应用程序托管在Basic层的应用程序服务计划中。我将函数从本地VSCode上传到Azure门户。函数在Azure门户中可见并启用。然后我将Python venv安装在函数根文件夹中(在门户中使用SSH),接下来我安装了与此函数相关的所有依赖项。(由TimeTrigger触发)它返回特定的模块“is not found”。我需要做什么才能让这个函数正常工作?
我在Azure Portal中的函数容器中的SSH端采取的步骤:
1.设置虚拟环境(venv):python -m venv myenv
1.激活虚拟环境:source myenv/bin/activate
1.在此venv中安装目录:pip install --target=<path-to-site-packages> -r requirements.txt
1.验证重复性:pip list
上面的所有步骤都正确执行,本地环境和venv之间的Python版本是相同的,我重新启动了函数,不幸的是,在__init__.py中导入的Python模块不可见/下载。
我描述了我尝试的步骤。我希望正确运行函数应用程序的所有依赖项。

8nuwlpux

8nuwlpux1#

  • 要达到您的要求,请在项目的 * 根文件夹 * 中创建包含所有必需的python包的requirements.txt文件。
  • requirements.txt是一个简单的文本文件,用于指定Azure函数所需的Python包。部署Azure函数时,requirements.txt文件中列出的包将自动安装在该函数的环境中。

我在本地创建了一个简单的python Azure函数:

项目结构:


的数据

要求.txt:

我在我的项目中使用了以下软件包:

  1. azure-functions
  2. numpy
  3. pandas

字符串

程式码片段:

  1. import datetime
  2. import json
  3. import logging
  4. import azure.functions as func
  5. import numpy as np
  6. import pandas as pd
  7. app = func.FunctionApp()
  8. @app.route(route="http_trigger", auth_level=func.AuthLevel.ANONYMOUS)
  9. def http_trigger(req: func.HttpRequest) -> func.HttpResponse:
  10. logging.info('Python HTTP trigger function processed a request.')
  11. arr = np.array([1, 2, 3])
  12. df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
  13. name = req.params.get('name')
  14. if not name:
  15. try:
  16. req_body = req.get_json()
  17. except ValueError:
  18. pass
  19. else:
  20. name = req_body.get('name')
  21. if name:
  22. return func.HttpResponse(f"Hello, {name}. This HTTP triggered function executed successfully with {arr} and {df}.")
  23. else:
  24. return func.HttpResponse(
  25. "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.",
  26. status_code=200
  27. )

  • 创建并激活虚拟环境,安装所需的软件包:


在本地运行:



  • 创建了Python Lunix Azure Function App with App Service Plan Basic tier
    已将我的函数部署到Azure函数应用程序:


  • 当您运行该函数时,它会激活 * 虚拟环境 * 并安装requirements.txt中提到的依赖项。
    门户响应:



展开查看全部
avkwfej4

avkwfej42#

我解决了它,它是两个问题:
1.网络与存储的问题-我添加了VNet和特殊配置的防火墙和它的作品。
1.所以问题是,在主python文件中,我有“import python cio”-这对Azure来说是个问题,因为“python cio”已经是Python中的内置包,因此它返回了与“Module Not Found”相关的错误

相关问题