Azure功能和辅助功能

时间:2020-03-25 22:23:44

标签: python azure-functions

我已经成功部署了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

任何人都可以详细说明上述问题吗?谢谢。

2 个答案:

答案 0 :(得分:0)

在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

答案 1 :(得分:0)

在官方文档中,有关于如何在功能代码中导入模块的详细说明:Import behavior

您可以使用两个显式函数将模块导入功能代码中 相对引用和绝对引用。

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

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

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