Python Azure函数无法从SAP/gigya-python-sdk导入本地GSSDK模块

ulydmbyx  于 2023-06-25  发布在  Python
关注(0)|答案(1)|浏览(92)

我正在开发一个Python Azure函数,并尝试使用Gigya SDK(在这里找到:https://github.com/SAP/gigya-python-sdk)进行身份验证。然而,我遇到了一个问题,我的Azure函数在执行时似乎找不到GSSDK模块。
以下是我遇到的错误:
Result: Failure Exception: ModuleNotFoundError: No module named 'GSSDK'. Please check the requirements.txt file for the missing module. For more info, please refer the troubleshooting guide: https://aka.ms/functions-modulenotfound Stack: File "/azure-functions-host/workers/python/3.x/LINUX/X64/azure_functions_worker/dispatcher.py", in _handle__function_load_request func = loader.load_function( File "/azure-functions-host/workers/python/3.x/LINUX/X64/azure_functions_worker/utils/wrappers.py", in call raise extend_exception_message(e, message) File "/azure-functions-host/workers/python/3.x/LINUX/X64/azure_functions_worker/utils/wrappers.py", in call return func(*args, **kwargs) File "/azure-functions-host/workers/python/3.x/LINUX/X64/azure_functions_worker
我已经将GSSDK.py文件和我的init.py文件一起放在本地/lib目录中,将其标记为包。目录结构如下所示:

/app  
   | \__inti_\_.py  
   | GSSDK.py

下面是Azure函数的init.py脚本的开头,我尝试将目录追加到sys.path并导入GSSDK模块。如果没有sys.path追加,它也无法工作:
import azure.functions as funcimport jsonfrom azure.storage.blob import BlobServiceClientimport osimport sys
sys.path.append(os.path.dirname(file))from necessary_module import *
即使执行了这些步骤,Azure函数也无法找到所需的模块。该模块在PyPi上不可用,因此无法将其添加到requirements.txt。
感谢任何建议或指导。

yr9zkbsy

yr9zkbsy1#

当我尝试使用您的代码导入GSSDK文件作为模块时,我收到了与您相同的错误代码:-

我在我的www.example.com中尝试了下面的代码init.py来从文件中导入GSSDK模块,触发器成功运行。

我的init.py:-

import azure.functions as func

# import sys

# import os

import os
import sys

sys.path.append(os.path.dirname(os.path.realpath(__file__)))
from GSSDK import *

def main(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

    name = req.params.get('name')
    if not name:
        try:
            req_body = req.get_json()
        except ValueError:
            pass
        else:
            name = req_body.get('name')

    if name:
        return func.HttpResponse(f"Hello, {name}. This HTTP triggered function executed successfully.")
    else:
        return func.HttpResponse(
             "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.",
             status_code=200
        )

我的GSSDK从here引用

我的需求.txt:-

azure-functions

我的函数触发器文件结构,init.py和GSSDK.py在同一个HttpTrigger 1文件夹中,其余所有文件都在根文件夹中的该文件夹之外,参考如下:-

我在Function应用程序中部署了此函数,并在那里成功运行:-

相关问题