AWS CLI未完全安装:部署Node.js应用时的依赖报错问题
Hey there, I’ve dealt with exactly these dependency conflicts when setting up the AWS EB CLI before—let’s fix this step by step.
First, let’s recap the specific issues you’re hitting (from your error output):
matplotlib 1.3.1依赖nose但未安装;matplotlib 1.3.1依赖tornado但未安装;python-dateutil 2.7.2要求six>=1.5,但当前six版本为1.4.1不兼容;blessed 1.14.2要求six>=1.9.0,但...
These are all rooted in outdated or missing packages in your user-level Python environment. Here’s how to resolve each one:
1. Fix the six version conflict first (critical!)
The outdated six package (v1.4.1) is causing conflicts with both python-dateutil and blessed. Upgrade it to a version that satisfies all requirements:
pip install six>=1.9.0 --upgrade --user
2. Install missing dependencies for matplotlib
Matplotlib 1.3.1 needs two missing packages to run. Install them explicitly:
pip install nose tornado --user
3. Re-install the AWS EB CLI with force-reinstall
Once the above fixes are done, re-run the EB CLI install with the --force-reinstall flag to ensure all dependencies are pulled in correctly, overriding any lingering outdated packages:
pip install awsebcli --upgrade --user --force-reinstall
Pro Tip: Use a Virtual Environment to Avoid Future Headaches
To prevent these global dependency messes entirely, I’d strongly recommend using a Python virtual environment for the EB CLI. Here’s a quick setup:
- Create a dedicated environment:
python -m venv eb-cli-env - Activate it (Linux/macOS):
source eb-cli-env/bin/activate - Activate it (Windows):
eb-cli-env\Scripts\activate - Install EB CLI inside the isolated env:
pip install awsebcli --upgrade
This keeps all EB CLI dependencies separate from your system’s global Python packages, so you won’t hit version conflicts with other tools.
内容的提问来源于stack exchange,提问作者Brad Vanderbush

