python - 缺少对 Python Azure 函数的依赖
问题描述
请注意:这在本地运行良好,但仅在使用 azure online 功能时才会出现问题。
错误:
Result: Failure
Exception: ModuleNotFoundError: No module named 'pandas'
Stack: File "/azure-functions-host/workers/python/3.6/LINUX/X64/azure_functions_worker/dispatcher.py", line 242, in _handle__function_load_request
func_request.metadata.entry_point)
File "/azure-functions-host/workers/python/3.6/LINUX/X64/azure_functions_worker/loader.py", line 66, in load_function
mod = importlib.import_module(fullmodname)
File "/usr/local/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/home/site/wwwroot/HttpExample/__init__.py", line 20, in <module>
import pandas as pd
进口:
import importlib
import logging
import azure.functions as func
import urllib.request
from zipfile import ZipFile
import json
import csv
import os
import pathlib
import os.path
from pathlib import Path
import time
import pandas as pd
from datetime import datetime
from dateutil.relativedelta import relativedelta
要求:
adal==1.2.2
antlr4-python3-runtime==4.7.2
applicationinsights==0.11.9
argcomplete==1.10.0
azure-cli-command-modules-nspkg==2.0.3
azure-cli-core==2.0.76
azure-cli-nspkg==3.0.4
azure-cli-profile==2.1.5
azure-cli-telemetry==1.0.4
azure-common==1.1.23
azure-functions==1.0.4
azure-mgmt-resource==4.0.0
azure-nspkg==3.0.2
bcrypt==3.1.7
certifi==2019.9.11
cffi==1.13.2
chardet==3.0.4
colorama==0.4.1
cryptography==2.8
humanfriendly==4.18
idna==2.8
isodate==0.6.0
jmespath==0.9.4
knack==0.6.3
msrest==0.6.10
msrestazure==0.6.2
numpy==1.17.3
oauthlib==3.1.0
pandas==0.25.3
paramiko==2.6.0
portalocker==1.5.1
pycparser==2.19
Pygments==2.4.2
PyJWT==1.7.1
PyNaCl==1.3.0
pyOpenSSL==19.0.0
python-dateutil==2.8.1
pytz==2019.3
PyYAML==5.1.2
requests==2.22.0
requests-oauthlib==1.2.0
six==1.12.0
tabulate==0.8.5
urllib3==1.25.6
我尝试过的:az account clear & az login。如果我写:func azure functionapp publish air-temperature
这导致错误:There was an error restoring dependencies. ERROR: cannot install cryptography-2.8 dependency: binary dependencies without wheels are not supported. Use the "--build remote" or "--build-native-deps" option to automatically build and configure the dependencies using a Docker container. More information at https://aka.ms/func-python-publish
我没有使用 docker 集成,所以我不能做 --build-native-deps
我正在使用 azure 存储库将其推送到 azure 存储库中,并且它是无缝构建的,没有依赖项或任何错误。但是,如果我通过门户在线运行它,则会出现顶部提到的此错误。
我还尝试在 python 上使用 venv 和 env 并执行 pip freeze > requirements.txt。
解决方案
您可以在发布时使用来缓解问题--no-bundler
。
这里是explanation
.
在使用 --build-native-deps 进行一般发布期间,我们尝试使用 Pyinstaller 将您的 requirements.txt 中指定的所有自定义依赖项与我们的运行器(worker)捆绑在一起。我们开始这样做是为了提高您在发布到 Azure Functions 后获得的启动性能。虽然,这个过程是不稳定的,我们正计划摆脱它。
--no-bundler 标志绕过该捆绑过程。因此,我们不使用 Pyinstaller 或任何此类模块进行临时优化。需要注意的是,在到达 API 端点时,您可能会遇到轻微的延迟(冷启动)。
推荐阅读
- jquery - 我无法获取表格 jquery 的内容
- node.js - 如何模拟 NATS 微服务?
- maximo - IBM Maximo - 有没有办法通过 API 获得可能的工作订单状态转换
- python - 需要使用 pandas 将纪元时间转换为 EST
- javascript - forEach() 方法 - 循环数组
- java - 如何识别
- 那些没有样式属性的标签?
- java - hail.utils.java.FatalError: IllegalStateException: 未读块数据
- ios - SwiftUI:将视图从一个堆栈移动到另一个堆栈?
- javascript - 我的拖放功能不起作用。我收到一个类型错误。这是什么意思?
- google-cloud-platform - 计算总管道延迟(Cloud Functions -> Pub/Sub -> Dataflow -> BQ)