aws / aws/sagemaker-python-sdk
ModuleNotFoundError: No module named `pytz` when importing `sagemaker.workflow.pipeline`
- 主要语言
- Python
- 星标
- 2.3k
- 派生
- 1.3k
- 平均合并
- 1 天 22 小时
- 30 天内合并 PR
- 35
描述
- [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`.
贡献指南
调研方向
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.
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- aws, pandas, python
- 领域
- cloud, machine-learning
- Issue 类型
- 缺陷
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 活跃度
- 冷清
- 描述清晰度
- 描述清楚
- 新手友好度
- 58/100