【问题标题】:Azure Function Python Import Error : libpython3.6m.so.1.0Azure 函数 Python 导入错误:libpython3.6m.so.1.0
【发布时间】:2022-07-25 05:57:08
【问题描述】:

我有一个项目托管在 Microsoft Azure 上。它具有作为 Python 代码的 Azure 函数,它们最近停止工作(500 内部服务器错误)。该代码有我以前没有遇到过的错误,并且没有进行任何已知的更改(但这种可能性存在,因为其他团队的人可能在不告诉任何人的情况下更改了某处的配置)。

这是一些日志:

2022-07-21T08:41:14.226884682Z: [INFO]  info: Function.AllCurveApi[1]
2022-07-21T08:41:14.226994383Z: [INFO]        Executing 'Functions.AllCurveApi' (Reason='This function was programmatically called via the host APIs.', Id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
2022-07-21T08:41:14.277076231Z: [INFO]  fail: Function.AllCurveApi[3]
2022-07-21T08:41:14.277143831Z: [INFO]        Executed 'Functions.AllCurveApi' (Failed, Id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, Duration=6ms)
2022-07-21T08:41:14.277932437Z: [INFO]  Microsoft.Azure.WebJobs.Host.FunctionInvocationException: Exception while executing function: Functions.AllCurveApi
2022-07-21T08:41:14.277948737Z: [INFO]   ---> Microsoft.Azure.WebJobs.Script.Workers.Rpc.RpcException: Result: Failure
2022-07-21T08:41:14.277953937Z: [INFO]  Exception: ImportError: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory. Troubleshooting Guide: https://aka.ms/functions-modulenotfound
2022-07-21T08:41:14.277957637Z: [INFO]  Stack:   File "/azure-functions-host/workers/python/3.6/LINUX/X64/azure_functions_worker/dispatcher.py", line 318, in _handle__function_load_request
2022-07-21T08:41:14.277961437Z: [INFO]      func_request.metadata.entry_point)
2022-07-21T08:41:14.277991237Z: [INFO]    File "/azure-functions-host/workers/python/3.6/LINUX/X64/azure_functions_worker/utils/wrappers.py", line 42, in call
2022-07-21T08:41:14.277995937Z: [INFO]      raise extend_exception_message(e, message)
2022-07-21T08:41:14.277999337Z: [INFO]    File "/azure-functions-host/workers/python/3.6/LINUX/X64/azure_functions_worker/utils/wrappers.py", line 40, in call
2022-07-21T08:41:14.278020737Z: [INFO]      return func(*args, **kwargs)
2022-07-21T08:41:14.278024237Z: [INFO]    File "/azure-functions-host/workers/python/3.6/LINUX/X64/azure_functions_worker/loader.py", line 85, in load_function
2022-07-21T08:41:14.278027837Z: [INFO]      mod = importlib.import_module(fullmodname)
2022-07-21T08:41:14.278031337Z: [INFO]    File "/usr/local/lib/python3.6/importlib/__init__.py", line 126, in import_module
2022-07-21T08:41:14.278277039Z: [INFO]      return _bootstrap._gcd_import(name[level:], package, level)
2022-07-21T08:41:14.278289939Z: [INFO]    File "<frozen importlib._bootstrap>", line 994, in _gcd_import
2022-07-21T08:41:14.278294939Z: [INFO]    File "<frozen importlib._bootstrap>", line 971, in _find_and_load
2022-07-21T08:41:14.278298639Z: [INFO]    File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
2022-07-21T08:41:14.278302439Z: [INFO]    File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
2022-07-21T08:41:14.278305939Z: [INFO]    File "<frozen importlib._bootstrap_external>", line 678, in exec_module
2022-07-21T08:41:14.278309639Z: [INFO]    File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
2022-07-21T08:41:14.278313239Z: [INFO]    File "/home/site/wwwroot/AllCurveApi/__init__.py", line 9, in <module>
2022-07-21T08:41:14.278317039Z: [INFO]      import pyodbc
2022-07-21T08:41:14.278320439Z: [INFO]
2022-07-21T08:41:14.278554841Z: [INFO]     at Microsoft.Azure.WebJobs.Script.Description.WorkerFunctionInvoker.InvokeCore(Object[] parameters, FunctionInvocationContext context) in /src/azure-functions-host/src/WebJobs.Script/Description/Workers/WorkerFunctionInvoker.cs:line 96
2022-07-21T08:41:14.278568241Z: [INFO]     at Microsoft.Azure.WebJobs.Script.Description.FunctionInvokerBase.Invoke(Object[] parameters) in /src/azure-functions-host/src/WebJobs.Script/Description/FunctionInvokerBase.cs:line 82
2022-07-21T08:41:14.278583841Z: [INFO]     at Microsoft.Azure.WebJobs.Script.Description.FunctionGenerator.Coerce[T](Task`1 src) in /src/azure-functions-host/src/WebJobs.Script/Description/FunctionGenerator.cs:line 225
[...] Then it goes for many many lines, I'm not sure it's interesting

这是一个python文件的例子,错误在第9行触发,import pyodbc

import simplejson as json
import azure.functions as func

from azure.keyvault import KeyVaultClient
from azure.common.credentials import ServicePrincipalCredentials
from datetime import datetime

import os
import pyodbc
import logging

# And then code

在我看来,服务器在访问某些 Python 资源或依赖项时遇到了困难,这与 libpython3.6 有关,但目前我不确定如何在 Azure 门户上解决问题。

【问题讨论】:

    标签: python azure azure-functions


    【解决方案1】:

    我们周五遇到了完全相同的问题。对我们有用的是用 pypyodbc 替换 pyodbc。我们这样做是为了不必在代码中更改它:

    import pypyodbc as pyodbc
    

    此外,我们升级了 Azure Functions 以使用 Python 3.7(可能很快会更新到 3.9)。从 2022 年 9 月 30 日起,Azure 将不再支持 Python 3.6:https://azure.microsoft.com/en-us/updates/azure-functions-support-for-python-36-is-ending-on-30-september-2022/

    【讨论】:

      猜你喜欢
      • 2021-01-18
      • 2020-08-20
      • 1970-01-01
      • 2016-11-03
      • 1970-01-01
      • 2015-08-13
      • 2016-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多