ansible-cmdb
ansible-cmdb copied to clipboard
python 3.12: imp is deprecated in favor of importlib
In src/ansiblecmdb/render.py imp is used, which has been deprecated in python 3.4 and removed in python 3.12, see https://docs.python.org/3.12/whatsnew/3.12.html#imp
import imp
[…]
def _render_py(self, hosts, vars={}):
module = imp.load_source('r', self.tpl_file)
return module.render(hosts, vars=vars, tpl_dirs=self.tpl_dirs)
This issue's title is a bit misleading. The title should be cannot run ansible-cmdb with Python 3.12 and the actual error message should be included as well (ModuleNotFoundError: No module named 'imp')
Hi,
ansible-cmd still does not work in a virtualenv with Python 3.12.7.
Here is my virtualenv packages.txt
ansible==10.4.0
ansible-lint==24.9.2
ansible-cmdb==1.31
dnspython
netaddr
jmespath
powerline-status
powerline-gitstatus
And here is the error message when I try to convert the files on html.
ansible-cmdb -t html_fancy_split -p local_js=0 out/
Traceback (most recent call last):
File "/home/user/Ansible/bin/../lib/ansiblecmdb/ansible-cmdb.py", line 22, in <module>
import ansiblecmdb.render as render
File "/home/user/Ansible/lib/python3.12/site-packages/ansiblecmdb/render.py", line 2, in <module>
import imp
ModuleNotFoundError: No module named 'imp'
Is this suppose to be fix, or any workaround is provided ?
Thanks a lot.
Up ! :-)
Same here!
I'm using Ubuntu24 with venv
The openSUSE package for ansible-cmdb started to fail building as Tumbleweed recently switched to Python 3.13. The error was in the failing tests.
Removing the import for imp from test/test.py solved the test issue.
But reading this issue I wonder why the tests succeeded, if the program itself does not work with 3.12 or higher...
Any temp fix on this problem? Except downgrading to Python3.11
I forked it: https://github.com/s-hell/ansible-cmdb
May be you can use this.
Since debian trixie now uses a more modern python version (3.13.5), ansible-cmdb is now longer working on debian.
is project dead?
Any news on this ? Python >=3.12 is pretty common in modern linux distros so it makes ansible-cmdb obsolete on any modern distro