ModuleNotFoundError: No module named 'yaml'
Complete solution guide for fixing Python YAML module import errors
Understanding the Error
ModuleNotFoundError: No module named 'yaml'
This error occurs when you try to import the YAML module in Python, but it hasn't been installed in your environment. The error typically appears when you run code like:
import yaml
Quick Solution
Install PyYAML
The YAML functionality in Python is provided by the PyYAML package. Install it using pip:
pip install pyyaml
Installation Methods
Method 1: Using pip
Standard installation using pip package manager:
pip install pyyaml
For Python 3 specifically:
pip3 install pyyaml
Method 2: Using conda
If you're using Anaconda or Miniconda:
conda install pyyaml
Method 3: Install for specific Python version
If you have multiple Python versions installed:
python3.9 -m pip install pyyaml
Method 4: Install in virtual environment
Best practice: install in a virtual environment:
# Create virtual environment
python -m venv myenv
# Activate (Windows)
myenv\Scripts\activate
# Activate (macOS/Linux)
source myenv/bin/activate
# Install PyYAML
pip install pyyaml
Verify Installation
After installation, verify that PyYAML is correctly installed:
python -c "import yaml; print(yaml.__version__)"
You should see the version number printed, for example:
6.0.1
Troubleshooting Common Issues
Issue: Permission Denied
If you get a permission error, try installing with user flag:
pip install --user pyyaml
Issue: Multiple Python Versions
Make sure you're installing to the correct Python version:
# Check which Python you're using
which python
python --version
# Install for that specific version
python -m pip install pyyaml
Issue: IDE Not Recognizing Module
If your IDE still shows the error after installation:
- Restart your IDE
- Check that your IDE is using the correct Python interpreter
- Rebuild your project index (if applicable)
- Verify installation in the correct environment
Basic Usage Example
Once installed, you can use PyYAML to work with YAML files:
import yaml
# Load YAML from string
yaml_string = """
name: John Doe
age: 30
skills:
- Python
- JavaScript
- YAML
"""
data = yaml.safe_load(yaml_string)
print(data)
# Write YAML to file
with open('output.yaml', 'w') as file:
yaml.dump(data, file)