【发布时间】:2020-08-26 11:46:45
【问题描述】:
我在同一个 Azure 函数“Test-v3”中有 init.py 和 blobquickstartv12.py。虽然 init.py 是一个 blob 触发器,但“blobquickstartv12.py”具有我想要运行的 python 代码。我能够在 blobquickstartv12.py 中运行代码的唯一方法是将整个代码粘贴到 init.py 的 main() 函数中。
我尝试使用 from blobquickstartv12 import load,其中 load 是我的 blobquickstartv12.py 代码中的一个函数,但这给了我异常:ModuleNotFoundError: No module named 'blobquickstartv12'
谁能告诉我如何从 init.py 中调用我的自定义代码 这是我的 Azure Function 的结构:
这是我在 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"
【问题讨论】:
-
请注意这是在模块内部导入的,所以需要使用
from . import blobquickstartv12。 -
现在可以解决了吗?
标签: python-3.x azure-functions azure-blob-storage