使用 python 的 azure 函数模块错误

azure functions module errors using python

我是 azure 的新手,所以请原谅我对该平台缺乏了解。我目前正在尝试 运行 并使用 python 部署 azure 函数。这些模块目前在我的 requirements.txt 文件

中找到
azure-functions
graphqlclient
requests
gql
asyncio
aiohttp

我运行下面的命令pip install -r requirements.txt安装了它们,但是由于某些原因,有些模块找不到。例如 json 模块。 import json 可以与任何其他 python 程序一起正常工作。但是当我尝试将它添加到 requirements.txt 文件和 运行 这个命令 pip install -r requirements.txt 我得到以下错误

ERROR: Could not find a version that satisfies the requirement json (from versions: none)
ERROR: No matching distribution found for json

我尝试添加一个版本,但这并没有解决我的问题。那只是我问题的一半,我决定暂时忽略这个问题并尝试使用 .txt 文件中正常工作的模块。转到我的 __init__.py 文件,它是一个计时器触发器,我有以下导入内容

import datetime
import logging
from graphqlclient import GraphQLClient
import requests
import asyncio
from gql import gql, Client
from gql.transport.aiohttp import AIOHTTPTransport

import azure.functions as func  

但是当我尝试 运行 我的函数时,我得到以下错误

Exception: ModuleNotFoundError: No module named 'gql.transport.aiohttp'

有人可以解释这些模块错误吗?当我从任何其他 python 程序 运行 它们时,所有这些模块都工作正常,所以问题似乎来自 azure。

谢谢

I run the following command pip install -r requirements.txt to install them, but for some reason, some modules cannot be found. for example the json module.

Json是python中的标准库,无需安装。

只需将其包含在您的 python 脚本中,如下所示:

import json

Exception: ModuleNotFoundError: No module named 'gql.transport.aiohttp'

根据我的测试结果,使用pip install -r requirements.txt命令安装的gql的默认版本是2.0.0.

如果使用from gql.transport.aiohttp import AIOHTTPTransport导入AIOHTTPTransport,则需要安装3.x.x.

所以这个错误是版本不兼容造成的

解法:

请安装3.x.x版本的gql,可以先卸载已安装的gql,再重新安装新版本的gql

pip uninstall gql

pip install gql==3.0.0a5

我做了一些测试,功能可以运行正常。