aws / aws/sagemaker-python-sdk
ModuleNotFoundError: No module named `pytz` when importing `sagemaker.workflow.pipeline`
- Ngôn ngữ chính
- Python
- Star
- 2.3k
- Fork
- 1.3k
- Merge trung bình
- 1 ngày 22 giờ
- Pull request đã merge (30 ngày)
- 35
Mô tả
- [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`.
Hướng dẫn đóng góp
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- aws, pandas, python
- Lĩnh vực
- cloud, machine-learning
- Loại issue
- Lỗi
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức phù hợp với người mới
- 58/100