Ошибка при развертывании кода Python в функции Azure на базе LinuxPython

Программы на Python
Ответить
Anonymous
 Ошибка при развертывании кода Python в функции Azure на базе Linux

Сообщение Anonymous »

Я пытаюсь развернуть код Python в функции Azure (на базе Linux, Python 3.12). Приложение работает, если я исключаю панды (и другие зависимости от пакетов). Однако если я включу их в Azure, я получаю следующую ошибку:

Код: Выделить всё

> ImportError: Unable to import required dependencies: numpy: Error
> importing numpy: you should not try to import numpy from
>         its source directory; please exit the numpy source tree, and relaunch
>         your python interpreter from there. Cannot find module. Please check the requirements.txt file for the missing module. For more info,
Приложение-функция Azure использует план службы приложений.
Код Python и другие зависимые файлы приведены ниже:
function_app.py

Код: Выделить всё

import azure.functions as func
import logging
import json
import pandas
import numpy
import statsmodels.api as sm
from scipy import stats

@app.route(route="health_check", methods=["GET"])
async def health_check(req: func.HttpRequest) -> func.HttpResponse:
# Basic usage of pandas
df = pandas.DataFrame({'A': [1, 2], 'B': [3, 4]})
pandas_result = df.sum().to_dict()
print(pandas_result)

# Basic usage of numpy
np_result = float(numpy.mean([1, 2, 3]))
print(np_result)

# Basic usage of statsmodels

X = [1, 2, 3]
y = [2, 4, 6]
X_const = sm.add_constant(X)
model = sm.OLS(y, X_const)
results = model.fit()
sm_result = float(results.params[1])  # Slope
print(sm_result)
# Basic usage of scipy

scipy_result = float(stats.pearsonr(X, y)[0])  # Correlation
print(scipy_result)

result = {
"pandas_sum": pandas_result,
"numpy_mean": np_result,
"statsmodels_slope": sm_result,
"scipy_correlation": scipy_result
}
return func.HttpResponse(json.dumps(result), status_code=200, mimetype="application/json")
requirements.txt

Код: Выделить всё

azure-functions
pandas==2.3.2
numpy==2.2.6
statsmodels==0.14.5
scipy==1.15.3
Я использую Windows, поэтому собираю пакеты локально с помощью следующей команды:

Код: Выделить всё

py -m pip install --target=".python_packages/lib/site-packages" -r requirements.txt --only-binary=:all: --upgrade --platform manylinux2014_x86_64
и создайте zip-файл, используя следующие файлы/папку:

Код: Выделить всё

function_app.py
host.json
requirements.txt
.funcignore
.python_packages
Конфигурация Azure (обязательно):

Код: Выделить всё

ENABLE_ORYX_BUILD   false
SCM_DO_BUILD_DURING_DEPLOYMENT  false
WEBSITE_RUN_FROM_PACKAGE    1
План хостинга Azure:
План службы приложений — Linux (Basic B1)
Я пропустил какие-то шаги?

Подробнее здесь: https://stackoverflow.com/questions/798 ... e-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»