![](/img/trans.png)
[英]Error loading Python lib libpython3.6m.so.1.0 pyinstaller Ubuntu Python
[英]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.