Я пишу скрипт на python для обновления некоторых файлов конфигурации YAML, содержащих jinja2. Я нашел этот ответ , показывающий, как это сделать с помощью пакетов ruamel.yaml и ruamel.yaml.jinja2, и он прекрасно работает на windows10 с этой конфигурацией:
$ python -V
Python 2.7.5
$ python -m pip list
[...]
ruamel.ordereddict 0.4.13
ruamel.yaml 0.15.94
ruamel.yaml.jinja2 0.2.2
[...]
и этот код:
from ruamel.yaml import YAML
yamlLoader = YAML(typ='jinja2')
Но когда я пытаюсь использовать его на виртуальной машине CentOS, которая является целевой средой для этого сценария, я получаю эту ошибку:
File "/opt/salt/mig/cnamts_migrate.py", line 17, in <module>
yamlLoader = YAML(typ='jinja2')
File "/usr/lib64/python2.7/site-packages/ruamel/yaml/main.py", line 138, in __init__
'typ "{}"not recognised (need to install plug-in?)'.format(self.typ)
NotImplementedError: typ "jinja2"not recognised (need to install plug-in?)
Я не могу найти никакой разницы ни в конфигурации Python, ни в версии пакетов.
На CentOS VM:
$ python -V
Python 2.7.5
$ pip list
Package Version
---------------------------- -----------
pip 19.1
ruamel.ordereddict 0.4.13
ruamel.yaml 0.15.94
ruamel.yaml.jinja2 0.2.2
setuptools 41.0.1