繁体   English   中英

Azure Function Python 导入错误:libpython3.6m.so.1.0

[英]Azure Function Python Import Error : libpython3.6m.so.1.0

我有一个项目托管在 Microsoft Azure 上。 它具有 Azure 代码为 Python 的函数,它们最近停止工作(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 门户上如何解决问题。

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

import pypyodbc as pyodbc

此外,我们升级了 Azure 函数以使用 Python 3.7(可能很快会更新到 3.9)。 Azure will not be supporting Python 3.6 as of September 30, 2022 anyways: https://azure.microsoft.com/en-us/updates/azure-functions-support-for-python-36-is-ending-on-30 -2022 年 9 月/

上周四我也面临同样的问题。 但是,我们已经尝试了互联网上可用的大多数解决方案,但没有一个对我们有帮助。

最后,我们刚刚将 Azure Function 运行时 Python 3.6 更新到 3.7 和 Boommm.. 它工作。

Moreover, we have also noticed that when we tried to create new Azure Function App based on Linux, that time were not able to select Python3.6 as runtime stack.

再次感谢各位。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM