Azure / Azure/azureml-examples

ModuleNotFoundError: No module named 'dateutil' when running pipeline_with_non_python_components.ipynb

Open
#1,501 1 comment 0 reactions 0 assignees View on GitHub
example issue pipeline
Dominant language
Jupyter Notebook
Stars
2k
Forks
1.7k
Avg merge
18h 18m
Merged PRs (30d)
2

Description

## When trying to run tutorial 1d in the pipelines example I get this error when trying to trigger the pipeline in AML:

Traceback (most recent call last):
File "/usr/local/bin/mlflow", line 8, in
sys.exit(cli())
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1130, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/mlflow/store/artifact/cli.py", line 63, in log_artifacts
store = _get_store()
File "/usr/local/lib/python3.8/dist-packages/mlflow/tracking/_tracking_service/utils.py", line 186, in _get_store
return _tracking_store_registry.get_store(store_uri, artifact_uri)
File "/usr/local/lib/python3.8/dist-packages/mlflow/tracking/_tracking_service/registry.py", line 39, in get_store
return self._get_store_with_resolved_uri(resolved_store_uri, artifact_uri)
File "/usr/local/lib/python3.8/dist-packages/mlflow/tracking/_tracking_service/registry.py", line 49, in _get_store_with_resolved_uri
return builder(store_uri=resolved_store_uri, artifact_uri=artifact_uri)
File "/usr/local/lib/python3.8/dist-packages/azureml/mlflow/entry_point_loaders.py", line 32, in azureml_store_builder
from ._internal.service_context_loader import _AzureMLServiceContextLoader
File "/usr/local/lib/python3.8/dist-packages/azureml/mlflow/_internal/service_context_loader.py", line 12, in
from .utils import (get_service_context_from_tracking_url_default_auth,
File "/usr/local/lib/python3.8/dist-packages/azureml/mlflow/_internal/utils.py", line 11, in
from azureml.mlflow._common._authentication.azureml_token_authentication import AzureMLTokenAuthentication
File "/usr/local/lib/python3.8/dist-packages/azureml/mlflow/_common/_authentication/azureml_token_authentication.py", line 13, in
import dateutil
ModuleNotFoundError: No module named 'dateutil'
! System command 'mlflow' failed

## Additional context

If I add RUN pip install python-dateutil to the Dockerfile

I get the following AttributeError: module 'dateutil' has no attribute 'parser' Trace Error -

Traceback (most recent call last):
File "/usr/local/bin/mlflow", line 8, in
sys.exit(cli())
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1130, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/mlflow/store/artifact/cli.py", line 63, in log_artifacts
store = _get_store()
File "/usr/local/lib/python3.8/dist-packages/mlflow/tracking/_tracking_service/utils.py", line 186, in _get_store
return _tracking_store_registry.get_store(store_uri, artifact_uri)
File "/usr/local/lib/python3.8/dist-packages/mlflow/tracking/_tracking_service/registry.py", line 39, in get_store
return self._get_store_with_resolved_uri(resolved_store_uri, artifact_uri)
File "/usr/local/lib/python3.8/dist-packages/mlflow/tracking/_tracking_service/registry.py", line 49, in _get_store_with_resolved_uri
return builder(store_uri=resolved_store_uri, artifact_uri=artifact_uri)
File "/usr/local/lib/python3.8/dist-packages/azureml/mlflow/entry_point_loaders.py", line 37, in azureml_store_builder
service_context = _AzureMLServiceContextLoader.load_service_context(store_uri)
File "/usr/local/lib/python3.8/dist-packages/azureml/mlflow/_internal/service_context_loader.py", line 68, in load_service_context
service_context = get_service_context_from_tracking_url_mlflow_env_vars(parsed_url)
File "/usr/local/lib/python3.8/dist-packages/azureml/mlflow/_internal/utils.py", line 280, in get_service_context_from_tracking_url_mlflow_env_vars
auth = AzureMLTokenAuthentication.create(
File "/usr/local/lib/python3.8/dist-packages/azureml/mlflow/_common/_authentication/azureml_token_authentication.py", line 204, in create
return cls(azureml_access_token, expiry_time, host, subscription_id,
File "/usr/local/lib/python3.8/dist-packages/azureml/mlflow/_common/_authentication/azureml_token_authentication.py", line 124, in __init__
self._expiry_time = AzureMLTokenAuthentication._parse_expiry_time_from_token(
File "/usr/local/lib/python3.8/dist-packages/azureml/mlflow/_common/_authentication/azureml_token_authentication.py", line 212, in _parse_expiry_time_from_token
return AzureMLTokenAuthentication._convert_to_datetime(decode_json['exp'])
File "/usr/local/lib/python3.8/dist-packages/azureml/mlflow/_common/_authentication/azureml_token_authentication.py", line 219, in _convert_to_datetime
date = dateutil.parser.parse(expiry_time)
AttributeError: module 'dateutil' has no attribute 'parser'
! System command 'mlflow' failed

Contributor guide

Open the contributing guide

Research direction

Start with tutorial 1d and the pipeline_with_non_python_components.ipynb notebook, then inspect the Dockerfile dependency setup. Reproduce the AML trigger first with the reported environment, investigate the dateutil import and parser errors, and verify that the pipeline runs without either failure.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, jupyter-notebook, python
Domain
cloud, machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.