ImportError: No module named 'yaml'
Categories:
Resolving 'ImportError: No module named 'yaml'' in Python

Encountering 'ImportError: No module named 'yaml'' indicates a missing PyYAML installation. This guide provides comprehensive solutions for Python 2 and 3 environments.
The ImportError: No module named 'yaml'
is a common issue faced by Python developers when their code attempts to import the yaml
module, but the necessary PyYAML library is not installed or accessible within the current Python environment. This error typically arises when working with configuration files, data serialization, or any application that relies on YAML (YAML Ain't Markup Language) for data exchange. This article will guide you through the steps to diagnose and resolve this error, ensuring your Python projects can correctly process YAML files.
Understanding the 'yaml' Module and PyYAML
The yaml
module in Python is provided by the third-party library PyYAML
. Unlike some built-in modules, PyYAML
does not come pre-installed with Python. Therefore, if your script or application tries to import yaml
without PyYAML
being installed, Python's module loader will fail to find it, resulting in an ImportError
. This is a fundamental concept in Python package management: external libraries must be explicitly installed into your environment.
flowchart TD A[Python Script] --> B{import yaml} B --> C{Is PyYAML installed?} C -- No --> D["ImportError: No module named 'yaml'"] C -- Yes --> E[Module Loaded Successfully] D --> F[Install PyYAML using pip] F --> C
Flowchart illustrating the cause and resolution of the ImportError
Installing PyYAML Using pip
The most straightforward way to install PyYAML
is by using pip
, Python's package installer. It's crucial to use the correct pip
command for your Python version, especially if you have multiple Python installations on your system (e.g., Python 2 and Python 3).
# For Python 3 (recommended)
pip3 install PyYAML
# For Python 2 (if still in use)
pip install PyYAML
# If you have multiple Python 3 versions or specific virtual environments
python3 -m pip install PyYAML
python -m pip install PyYAML
Commands to install PyYAML using pip for different Python versions.
pip3
for Python 3 installations to avoid conflicts with Python 2's pip
. If you're working within a virtual environment, simply pip install PyYAML
will suffice, as pip
will be linked to the environment's Python version.Verifying the Installation
After running the installation command, it's good practice to verify that PyYAML
has been successfully installed and is accessible. You can do this by attempting to import it in a Python interpreter or by running a simple script.
import yaml
print("PyYAML imported successfully!")
# You can also check its version
print(f"PyYAML version: {yaml.__version__}")
Python script to verify PyYAML installation.
If the above code runs without an ImportError
, your issue is resolved. If you still encounter the error, proceed to the troubleshooting steps.
Troubleshooting Common Issues
Sometimes, even after running pip install PyYAML
, the error persists. This usually points to environmental issues or conflicts.
1. Check Python and pip versions
Ensure that the pip
you are using corresponds to the Python interpreter that is running your script. Run which python
and which pip
(or where python
and where pip
on Windows) to confirm their paths. Then, check their versions: python --version
and pip --version
.
2. Use virtual environments
Virtual environments are highly recommended to manage project-specific dependencies and avoid conflicts. Create and activate a virtual environment, then install PyYAML
within it. This isolates your project's dependencies from your system-wide Python installation.
3. Check PYTHONPATH
The PYTHONPATH
environment variable tells Python where to look for modules. If it's incorrectly configured, Python might not find installed packages. In most cases, you shouldn't need to manually set PYTHONPATH
if you're using pip
and virtual environments correctly.
4. Reinstall PyYAML
Sometimes, a corrupted installation can cause issues. Try uninstalling and then reinstalling PyYAML
: pip uninstall PyYAML
followed by pip install PyYAML
.
5. Check for typos
Ensure you are importing yaml
(lowercase) in your Python code, not PyYAML
or YAML
.
sudo pip
(or sudo pip3
) unless absolutely necessary and you understand the implications. This can lead to permission issues and pollute your system-wide Python installation. Prefer virtual environments.