Ansible Pilot

Ansible troubleshooting - Error markupsafe

How to Solve the "ERROR: No module named markupsafe" Issue after Upgrading Python 3.12 on Mac with Homebrew

Resolve the No module named markupsafe error in Ansible by reinstalling Ansible, ansible-lint, and python-markupsafe via Homebrew.
November 10, 2023
Access the Complete Video Course and Learn Quick Ansible by 200+ Practical Lessons

YouTube Video

Introduction

After upgrading Python to version 3.12 on your Mac using Homebrew, you encountered an error when trying to run Ansible: “ERROR: No module named 'markupsafe'”. This issue arises because Ansible relies on certain Python modules, and in this case, it seems that the ‘markupsafe’ module is missing or not properly installed.

Let’s go through the steps to resolve this issue:

ERROR: No module named 'markupsafe'

DL;DR

$ ansible
ERROR: No module named 'markupsafe'
$ brew uninstall ansible-lint ansible python-markupsafe
$ brew install ansible-lint ansible python-markupsafe
$ ansible --version
ansible [core 2.15.6]
  config file = None
  configured module search path = ['/Users/lberton/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /opt/homebrew/Cellar/ansible/8.6.1/libexec/lib/python3.12/site-packages/ansible
  ansible collection location = /Users/lberton/.ansible/collections:/usr/share/ansible/collections
  executable location = /opt/homebrew/bin/ansible
  python version = 3.12.0 (main, Oct  2 2023, 12:03:24) [Clang 15.0.0 (clang-1500.0.40.1)] (/opt/homebrew/Cellar/ansible/8.6.1/libexec/bin/python)
  jinja version = 3.1.2
  libyaml = True

Step 1: Identify the Problem

The error message indicates that the ‘markupsafe’ module is not found. This module is a dependency for Ansible and needs to be installed.

Step 2: Check for ‘markupsafe’ Installation

First, let’s check if the ‘markupsafe’ module is installed. Open your terminal and run:

python3.12 -m pip show markupsafe

If the module is not installed, you will need to install it. If it’s already installed, proceed to the next step.

Step 3: Install ‘markupsafe’

Install the ‘markupsafe’ module using the following command:

brew uninstall ansible ansible-lint python-markupsafe
brew install python-markupsafe

This command uses Homebrew package manager, brew, to install the ‘markupsafe’ module. Otherwise you can use:

python3.12 -m pip install markupsafe

This command uses Python’s package manager, pip, to install the ‘markupsafe’ module.

Step 4: Verify ‘markupsafe’ Installation

After installing ‘markupsafe’, verify that the installation was successful:

python3.12 -c "import markupsafe"

If there are no errors, the ‘markupsafe’ module is now installed correctly.

Step 5: Reinstall Ansible and Ansible-Lint

Now that ‘markupsafe’ is installed, you can proceed to reinstall Ansible and Ansible-Lint to ensure they are using the correct dependencies:

brew uninstall ansible ansible-lint
brew install ansible ansible-lint

This will uninstall the current versions and install them again with the correct dependencies, including ‘markupsafe’.

Step 6: Verify Ansible Installation

Finally, check if Ansible is working without any errors:

ansible --version

This should display the version information for Ansible without any ‘markupsafe’ related errors.

ansible [core 2.15.6]
  config file = None
  configured module search path = ['/Users/lberton/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /opt/homebrew/Cellar/ansible/8.6.1/libexec/lib/python3.12/site-packages/ansible
  ansible collection location = /Users/lberton/.ansible/collections:/usr/share/ansible/collections
  executable location = /opt/homebrew/bin/ansible
  python version = 3.12.0 (main, Oct  2 2023, 12:03:24) [Clang 15.0.0 (clang-1500.0.40.1)] (/opt/homebrew/Cellar/ansible/8.6.1/libexec/bin/python)
  jinja version = 3.1.2
  libyaml = True

Conclusion

By following these steps, you should have resolved the “ERROR: No module named 'markupsafe'” issue after upgrading Python 3.12 on your Mac with Homebrew. Always make sure to check for any missing dependencies when encountering module-related errors and reinstall them as needed.

Subscribe to the YouTube channel, Medium, and Website, X (formerly Twitter) to not miss the next episode of the Ansible Pilot.

Academy

Learn the Ansible automation technology with some real-life examples in my

My book Ansible By Examples: 200+ Automation Examples For Linux and Windows System Administrator and DevOps

BUY the Complete PDF BOOK to easily Copy and Paste the 250+ Ansible code

Want to keep this project going? Please donate

Access the Complete Video Course and Learn Quick Ansible by 200+ Practical Lessons
Follow me

Subscribe not to miss any new releases