aws / aws/sagemaker-python-sdk

ModuleNotFoundError: No module named `pytz` when importing `sagemaker.workflow.pipeline`

Fermée
#5,863 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
component: pipelines type: bug
Langage dominant
Python
Étoiles
2.3k
Forks
1.3k
Merge moyen
1 j 22 h
PR mergées (30 j)
35

Description

- [x] PySDK V2 (2.x)
- [ ] PySDK V3 (3.x)

## Describe the bug
When importing the SageMaker Pipelines module the runtime raises:

```
ModuleNotFoundError: No module named 'pytz'
```

The SDK imports `pytz` directly from a [pipeline module](https://github.com/aws/sagemaker-python-sdk/blob/07d5847908923e9a15d2616f9fddb844e89e0fe8/src/sagemaker/workflow/pipeline.py#L24) but does not declare `pytz` in its [own install-time dependencies](https://github.com/aws/sagemaker-python-sdk/blob/v2.257.3/pyproject.toml). If dependency resolution installs `pandas>=3.x` (which no longer pulls `pytz`), `pytz` may be absent and the import fails.

## To reproduce
Create a fresh environment and run the following steps (complete and runnable):

1. Create and activate a virtualenv, then install the SDK and pandas 3.x:

```bash
python -m venv venv
source venv/bin/activate
python -m pip install --upgrade pip
pip install "sagemaker==2.257.3" "pandas==3.0.0"
```

2. Create `reproduce.py` with this exact content:

```python
# reproduce.py
from sagemaker.workflow.pipeline import Pipeline

print("Imported Pipeline OK")
```

3. Run:

```bash
python reproduce.py
```

Observed result: import fails with a traceback like:

```
Traceback (most recent call last):
File "reproduce.py", line 1, in
from sagemaker.workflow.pipeline import Pipeline
File ".../site-packages/sagemaker/workflow/pipeline.py", line XX, in
import pytz
ModuleNotFoundError: No module named 'pytz'
```

## Expected behavior
Importing public SDK modules (e.g., `sagemaker.workflow.pipeline`) should not raise `ModuleNotFoundError` for direct imports used by the SDK. Installing the SDK alone should provide all runtime dependencies required by its modules.

## Screenshots or logs
See the traceback above produced by the reproduction steps.

## System information
- **SageMaker Python SDK version**: `sagemaker==2.257.3`
- **Framework name or algorithm**: N/A (issue occurs at SDK import time)
- **Framework version**: N/A
- **Python version**: `Python 3.12`
- **CPU or GPU**: CPU
- **Custom Docker image (Y/N)**: N

## Additional context
- Root cause: Historically `pandas<3` depended on `pytz`, so `pytz` was often pulled transitively. With `pandas>=3` that transitive dependency is removed, exposing the SDK's missing direct dependency on `pytz`.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Start with pyproject.toml to inspect the SDK's install-time dependencies, then review the pytz import in src/sagemaker/workflow/pipeline.py. Recreate the fresh-environment steps from the issue and verify that importing Pipeline succeeds after installing the SDK alone.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
aws, pandas, python
Domaine
cloud, machine-learning
Type d'issue
Bug
Difficulté
2/5
Temps estimé
1-3 heures
Activité
Calme
Clarté
Clairement spécifiée
Accessibilité débutants
58/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.