Python 3.x 无法在Azure函数中运行python代码

Python 3.x 无法在Azure函数中运行python代码,python-3.x,azure-functions,azure-blob-storage,Python 3.x,Azure Functions,Azure Blob Storage,我在同一Azure函数“Test-v3”中有init.py和blobquickstartv12.py。虽然init.py是一个blob触发器,但“blobquickstartv12.py”有我想要运行的python代码。在blobquickstartv12.py中运行代码的唯一方法是将整个代码粘贴到init.py的main()函数中 我尝试使用blobquickstartv12导入load中的,其中load是blobquickstartv12.py代码中的一个函数,但出现了异常:moduleno

我在同一Azure函数“Test-v3”中有init.py和blobquickstartv12.py。虽然init.py是一个blob触发器,但“blobquickstartv12.py”有我想要运行的python代码。在blobquickstartv12.py中运行代码的唯一方法是将整个代码粘贴到init.py的main()函数中

我尝试使用blobquickstartv12导入load中的
,其中load是blobquickstartv12.py代码中的一个函数,但出现了异常:modulenofounderror:没有名为“blobquickstartv12”的模块

谁能告诉我如何从init.py中调用自定义代码 my Azure函数的结构如下所示:

这是我在init.py中的代码:

import azure.functions as func
import pandas as pd
import numpy as np
from datetime import datetime
from pandas import ExcelFile
from pandas import ExcelWriter
from datetime import datetime, timedelta
from azure.storage.blob import BlockBlobService
import pyodbc
import sys
import os
from io import StringIO
import pkgutil
from . import blobquickstartv12

def main(myblob: func.InputStream):
    logging.info(f"Python blob trigger function processed blob \n"
                 f"Name: {myblob.name}\n"
                 f"Blob Size: {myblob.length} bytes")
load=blobquickstartv12.load() 
以下是我的blobquickstart.py代码:

class load:

    #CODE FOR CONNECTING TO THE SQL DATABASE
    SERVER = 'xxxxxx.database.windows.net'
    DATABASE = 'XYZ'
    username = 'USERNAME'
    pwd = 'PASSWORD'
    driver= '{ODBC Driver 17 for SQL Server}'
    cnxn = pyodbc.connect('DRIVER='+driver+';SERVER='+SERVER+';PORT=1433;DATABASE='+DATABASE+';UID='+username+';PWD='+ pwd)
    cursor = cnxn.cursor()
    print("Connected to Azure SQL")
    #sqlcommand = ("INSERT INTO Stage.File(File_ID,File_type) VALUES (1235,'D')")
    Curr_dt = datetime.now()

    BLOB_STORAGEACCOUNTNAME="blobstorage"
    BLOB_STORAGEACCOUNTKEY="AccountKey"
    BLOBNAME="BlobName"
    CONTAINERNAME= "ContainerName"

更新:

请检查一下结构。在我这方面没有问题。代码可以很好地导入blobquickstartv12

这是azure函数的结构:

这是如何导入的单据:

原始答案:

模块中的导入模块应如下所示:

例如,我有一个dog.py,我想使用它

这是狗。py:

class Dog:
    def __init__(self,name):
        super().__init__()
        self.name = name
    def showdog(self):
        print("This is a dog!")
\u init\uupy.py
中,您应该使用以下内容:

from . import dog
mydog = dog.Dog("Woodie")
这对我来说很管用

结构如下:


请注意,这是在模块内部导入的,因此您需要从中使用
。导入blobquickstartv12
。这是官方文件:你现在可以解决吗?我收到错误ImportError:无法从'main'(init.py)导入名称'blobquickstartv12',你能告诉我如何在Azure函数中从init.py调用blobquickstartv12吗?@RahulBanerjee也许你可以检查结构。这是如何导入的官方单据,您可以尝试其他方式。但在我这边,
来自。导入blobquickstartv12
没有问题。