Azure函数和助手函数

2024-06-02 07:15:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我已成功部署Azure功能!但它失败了

Result: Failure
Exception: ModuleNotFoundError: No module named 'CurrencyConversion'
Stack:   File "/azure-functions-host/workers/python/3.7/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.7/LINUX/X64/azure_functions_worker/loader.py", line 66, in load_function mod = importlib.import_module(fullmodname)
File "/usr/local/lib/python3.7/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level)
File "/home/site/wwwroot/CC_Timer/__init__.py", line 3, in <module> import CurrencyConversion as cc

因此,从上面的错误可以看出,问题是将我的助手函数从CurrencyConversion.py导入到init.py。我的代码如下所示:

import CurrencyConversion as cc
import os
import azure.functions as func

我的文件结构如下:

CCTimer
├── __init__.py
├── CurrencyConversion.py

有谁能帮助详细说明上述问题吗?谢谢


Tags: inpyimporthostinitlinuxasline
2条回答

在Python3中,禁止隐式相对导入

你能做的就是from .module import name。 以你为例 from .CurrencyConversion import classname/funcname

你可以查看python3文档 https://docs.python.org/release/3.0.1/whatsnew/3.0.html#removed-syntax

在官方文档中,有一个关于如何在函数代码中导入模块的详细描述:Import behavior

You can import modules in your function code using both explicit relative and absolute references.

unit test下,您可以从文件夹中找到示例导入模块

因此您可以使用from __app__.CCTimer import CurrencyConversion导入

注意:现在假设有一个bug with python 3.7,因此如果您使用的是python 3.7,那么显式相对方式更好

相关问题 更多 >