# Ansible\_python\_interpreter issues

**URL:** <https://forum.ansible.com/t/ansible-python-interpreter-issues/9664>\
**Category:** Get Help\
**Tags:** cisco\
**Created:** [October 3, 2024, 5:56pm UTC](https://forum.ansible.com/t/ansible-python-interpreter-issues/9664 "2024-10-03T17:56:26Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![venom619](https://avatars.discourse-cdn.com/v4/letter/v/b9bd4f/32.png) [@venom619](https://forum.ansible.com/u/venom619)\
**Post date:** [October 3, 2024, 5:56pm UTC](https://forum.ansible.com/t/ansible-python-interpreter-issues/9664/1 "2024-10-03T17:56:26Z")

</div>

Hello,

I keep getting the following errors when I run my cisco playbook:

Failed to import the required Python library (ansible-pylibssh) on itbckt-01’s Python /usr/bin/python3.12. Please read the module documentation and install it in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible\_python\_interpreter

ansible --version shows

```auto
 config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/user/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.12/site-packages/ansible
  ansible collection location = /home/n40059_su/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.12.3 (main, Jun 19 2024, 10:06:03) [GCC 8.5.0 20210514 (Red Hat 8.5.0-22)] (/usr/bin/python3.12)
  jinja version = 3.1.2
  libyaml = True

```

```auto
python3 --version
Python 3.6.8

```

Ive set the ‘ansible\_python\_interpreter’ everywhere. In the play file like this:

```auto

- name: capture show output
  hosts: routers
  gather_facts: no
  connection: network_cli
  vars:
    ansible_python_interpreter: /usr/bin/python3.6
    ansible_network_os: cisco.ios.ios

  tasks:
    - name: show run
      ios_command:
        commands:
        - show version
      register: config

    - name: save output to local directory
      copy:
       content: "{{ config.stdout | replace('\\n', '\n') }}"
       dest: "show-output/{{ inventory_hostname }}.ios

```

in the host file:

```auto

[routers]
172.x.0.4
172.x.0.2
172.x.0.1

172.28.0.4
172.28.0.5

#ansible_python_interpreter: /usr/bin/python3.6

[all]
ansible_connection=ssh
ansible_python_interpreter: /usr/bin/python3.6

ansible_connection: ansible.netcommon.network_cli
ansible_network_os: ios
ansible_network_os: nxos

```

It still complains.

please help!

---

<div class="post-metadata">

**Author:** ![jiholland](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/jiholland/32/11273_2.png) [@jiholland](https://forum.ansible.com/u/jiholland)\
**Post date:** [October 3, 2024, 6:27pm UTC](https://forum.ansible.com/t/ansible-python-interpreter-issues/9664/2 "2024-10-03T18:27:23Z")

</div>

Ansible is using python3.12

> [@venom619](#):
>
> ` python version = 3.12.3 (main, Jun 19 2024, 10:06:03) [GCC 8.5.0 20210514 (Red Hat 8.5.0-22)] (/usr/bin/python3.12)`

So you need to remove this

> [@venom619](#):
>
> ` ansible_python_interpreter: /usr/bin/python3.6`

From the error message, it looks like you are missing [ansible-pylibssh](https://pypi.org/project/ansible-pylibssh/)

> [@venom619](#):
>
> Failed to import the required Python library (ansible-pylibssh)

which should be installed with the same Python interpreter that Ansible is using.

```yaml
python3.12 -m pip install ansible-pylibssh

```

---

<div class="post-metadata">

**Author:** ![venom619](https://avatars.discourse-cdn.com/v4/letter/v/b9bd4f/32.png) [@venom619](https://forum.ansible.com/u/venom619)\
**Post date:** [October 3, 2024, 6:42pm UTC](https://forum.ansible.com/t/ansible-python-interpreter-issues/9664/3 "2024-10-03T18:42:44Z")

</div>

> [@jiholland](#):
>
> ```auto
> python3.12 -m pip install ansible-pylibssh
> 
> ```

sudo python3.12 -m pip install ansible-p ylibssh  
/bin/python3.12: No module named pip3

I keep getting this. And ive installed the package with:

sudo pip3 install ansible-pylibssh

---

<div class="post-metadata">

**Author:** ![jiholland](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/jiholland/32/11273_2.png) [@jiholland](https://forum.ansible.com/u/jiholland)\
**Post date:** [October 3, 2024, 6:52pm UTC](https://forum.ansible.com/t/ansible-python-interpreter-issues/9664/4 "2024-10-03T18:52:06Z")

</div>

You don’t want to use `sudo` when installing packages with pip.

What is the output of `$ pip3 --version` ?

---

<div class="post-metadata">

**Author:** ![jiholland](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/jiholland/32/11273_2.png) [@jiholland](https://forum.ansible.com/u/jiholland)\
**Post date:** [October 3, 2024, 7:11pm UTC](https://forum.ansible.com/t/ansible-python-interpreter-issues/9664/5 "2024-10-03T19:11:48Z")

</div>

Either way, I’m pretty sure pip3 is pointing to python3.6, so this does not help since Ansible is using Python3.12.

> [@venom619](#):
>
> sudo pip3 install ansible-pylibssh

I see that you are on rhel 8.

> [@venom619](#):
>
> `(Red Hat 8.5.0-22)`

And I guess you installed python3.12 with dnf/yum, but you probably didn’t install pip since this is failing:

> [@venom619](#):
>
> python3.12 -m pip install ansible-p ylibssh

So you want to install pip for python3.12 and then ansible-pylibssh.

```yaml
$ sudo dnf install python3.12-pip
$ python3.12 -m pip install ansible-pylibssh
```

---

<div class="post-metadata">

**Author:** ![venom619](https://avatars.discourse-cdn.com/v4/letter/v/b9bd4f/32.png) [@venom619](https://forum.ansible.com/u/venom619)\
**Post date:** [October 3, 2024, 7:49pm UTC](https://forum.ansible.com/t/ansible-python-interpreter-issues/9664/6 "2024-10-03T19:49:57Z")

</div>

> [@jiholland](#):
>
> `ansible-pylibssh`

Hi so if i wanted to download ansible-pylibssh offline, would I get these files here? [ansible-pylibssh · PyPI](https://pypi.org/project/ansible-pylibssh/#files)

If so how would i install it?  
it looks like its already installed with pip 3. can I just make ansible use 3.6 python version?

```auto

pip3 show ansible-pylibssh
Name: ansible-pylibssh
Version: 1.2.0.post4
Summary: Python bindings for libssh client specific to Ansible use case
Home-page: https://github.com/ansible/pylibssh
Author: Ansible, Inc.
Author-email: info+github/ansible/pylibssh@ansible.com
License: LGPLv2+
Location: /usr/local/lib64/python3.6/site-packages
Requires:

```

---

<div class="post-metadata">

**Author:** ![venom619](https://avatars.discourse-cdn.com/v4/letter/v/b9bd4f/32.png) [@venom619](https://forum.ansible.com/u/venom619)\
**Post date:** [October 3, 2024, 8:03pm UTC](https://forum.ansible.com/t/ansible-python-interpreter-issues/9664/7 "2024-10-03T20:03:58Z")

</div>

> [@jiholland](#):
>
> pip3 --version

pip3 --version  
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)

---

<div class="post-metadata">

**Author:** ![jiholland](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/jiholland/32/11273_2.png) [@jiholland](https://forum.ansible.com/u/jiholland)\
**Post date:** [October 3, 2024, 8:27pm UTC](https://forum.ansible.com/t/ansible-python-interpreter-issues/9664/8 "2024-10-03T20:27:49Z")

</div>

> [@venom619](#):
>
> Hi so if i wanted to download ansible-pylibssh offline, would I get these files here? [ansible-pylibssh · PyPI](https://pypi.org/project/ansible-pylibssh/#files)

Yes.

> [@venom619](#):
>
> If so how would i install it?

Something like this:

```yaml
python3 -m pip install --user --no-index --find-links . --upgrade ansible_pylibssh-1.2.2-cp312-cp312-manylinux_2_28_x86_64.whl

```

> [@venom619](#):
>
> can I just make ansible use 3.6 python version?

Newer versions of Ansible (for the controller) do not support that.

I suggest you take a look at this document:  
[https://docs.ansible.com/ansible/latest/installation\_guide/intro\_installation.html#installing-and-upgrading-ansible-with-pip](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installing-and-upgrading-ansible-with-pip)

I also recommend creating and activating a [virtual environment](https://docs.python.org/3/library/venv.html) in Python before pip installing Ansible and other packages.

---

<div class="post-metadata">

**Author:** ![venom619](https://avatars.discourse-cdn.com/v4/letter/v/b9bd4f/32.png) [@venom619](https://forum.ansible.com/u/venom619)\
**Post date:** [October 4, 2024, 2:49pm UTC](https://forum.ansible.com/t/ansible-python-interpreter-issues/9664/9 "2024-10-04T14:49:18Z")

</div>

> [@jiholland](#):
>
> `ansible_pylibssh-1.2.2-cp312-cp312-manylinux_2_28_x86_64.whl`

Ok so i did try that for that specific version. I just copied it on roots dir and got the following:

ansible\_pylibssh-1.2.2-cp312-cp312-manylinux\_2\_28\_x86\_64.whl is not a supported wheel on this platform.

---

<div class="post-metadata">

**Author:** ![jiholland](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/jiholland/32/11273_2.png) [@jiholland](https://forum.ansible.com/u/jiholland)\
**Post date:** [October 4, 2024, 5:41pm UTC](https://forum.ansible.com/t/ansible-python-interpreter-issues/9664/10 "2024-10-04T17:41:22Z")

</div>

That was just an example. You will have to get the compatible version with your OS/platform.
