Apparently although the the script runs with
from monday.process_data import process_func
That will not work with azure functions. I had to change this to:
from .process_data import process_func
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
I have the following project structure:
My main.py
looks as followed:
python
import datetime
import logging
import azure.functions as func
from .process_data import export_to_azure, create_dataframe
def main(timer: func.TimerRequest) -> None:
utc_timestamp = datetime.datetime.utcnow().replace(
tzinfo=datetime.timezone.utc).isoformat()
# on timer run export data
df = create_dataframe()
export_to_azure(table_name="sdp_taken", schema="monday", df=df)
logging.info('Python timer trigger function ran at %s', utc_timestamp)
When I have main.py
as my main script to run and run func start
, I get:
[2020-11-02T02:19:58.327] Exception: ModuleNotFoundError: No module named 'monday'. Troubleshooting Guide: https://aka.ms/functions-modulenotfound
[2020-11-02T02:19:58.327] Stack: File "/usr/local/Cellar/azure-functions-core-tools@3/3.0.2931/workers/python/3.8/OSX/X64/azure_functions_worker/dispatcher.py", line 262, in _handle__function_load_request
[2020-11-02T02:19:58.327] func = loader.load_function(
[2020-11-02T02:19:58.327] File "/usr/local/Cellar/azure-functions-core-tools@3/3.0.2931/workers/python/3.8/OSX/X64/azure_functions_worker/utils/wrappers.py", line 34, in call
[2020-11-02T02:19:58.327] raise extend_exception_message(e, message)
[2020-11-02T02:19:58.327] File "/usr/local/Cellar/azure-functions-core-tools@3/3.0.2931/workers/python/3.8/OSX/X64/azure_functions_worker/utils/wrappers.py", line 32, in call
[2020-11-02T02:19:58.327] return func(*args, **kwargs)
[2020-11-02T02:19:58.327] File "/usr/local/Cellar/azure-functions-core-tools@3/3.0.2931/workers/python/3.8/OSX/X64/azure_functions_worker/loader.py", line 76, in load_function
[2020-11-02T02:19:58.327] mod = importlib.import_module(fullmodname)
[2020-11-02T02:19:58.327] File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/importlib/__init__.py", line 127, in import_module
[2020-11-02T02:19:58.327] return _bootstrap._gcd_import(name[level:], package, level)
[2020-11-02T02:19:58.328] File "/Users/erfannariman/Workspace/zypp/monday/monday/main.py", line 4, in <module>
[2020-11-02T02:19:58.328] from .process_data import export_to_azure, create_dataframe
[2020-11-02T02:19:58.328] File "/Users/erfannariman/Workspace/zypp/monday/monday/process_data.py", line 3, in <module>
[2020-11-02T02:19:58.328] from monday.api import request_data
But, when I put all the code in one file and then run func start
, everything works fine.
I am not sure how to solve this and what causes this, I read this thread, but that did not help.
function.json
looks as followed:
{
"scriptFile": "main.py",
"bindings": [
{
"name": "timer",
"type": "timerTrigger",
"direction": "in",
"schedule": "0 */5 * * * *"
}
]
}
Apparently although the the script runs with
from monday.process_data import process_func
That will not work with azure functions. I had to change this to:
from .process_data import process_func
@JayaC-MSFT it's not solvable with pip install
since it's just my own written script in the same folder, see screenshot. For example I am loading process_data.py
in main.py
. The import error is not about an external package which I pip installed. Here's an simplified example:
monday/process_data.py:
def process_func():
# do some data processing
Then in monday/main.py:
from monday.process_data.py import process_func
# do something with the process_func
I also tried from .proccess_data import process_func
, but that did not help either.
Import note: when I run the python script without func start
, everything works fine and it finds the other scripts/modules. So it is a problem that occurs when running func start
Hi @Erfan Nariman ,
Did you solve this problem?
I had the same problem as you.
Have you solved this problem?
I have a similar one: https://learn.microsoft.com/en-us/answers/questions/1002400/azure-functions-exception-modulenotfounderror-no-m.html