- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在用 python 编写脚本来更新一些包含 jinja2 的 YAML 配置文件。我找到了这个 answer展示了如何使用 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 虚拟机上:
$ 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
最佳答案
这条路
/usr/lib64/python2.7/site-packages/ruamel/yaml/main.py
错误消息给我的印象是您正在使用系统范围的 Python 安装。您应该(恕我直言,即使在 VM 中)对任何实用程序使用 python virtualenv(最好是每个不相关的实用程序一个)。你没有为你的 CentOS 机器显示 pip
的输出,这比你的 Windows 机器上的更有趣。
$ more /etc/centos-release
CentOS Linux release 7.3.1611 (Core)
$ /opt/python/3.7/bin/python -m venv /tmp/so-55900745
$ source /tmp/so-55900745/bin/activate
(so-55900745) $ pip install ruamel.yaml.jinja2
Collecting ruamel.yaml.jinja2
Downloading https://files.pythonhosted.org/packages/4f/b4/9676d4fa53d921f98f40dcda2ecfdb9fba2b68fbdccec3d9d4d2c87d96a7/ruamel.yaml.jinja2-0.2.2-py2.py3-none-any.whl
Collecting ruamel.yaml>=0.15.10 (from ruamel.yaml.jinja2)
Downloading https://files.pythonhosted.org/packages/bb/e3/8c06f90dab796bd5baf5da2482cf919bab3145389196814ec3180d4c7bd5/ruamel.yaml-0.15.94-cp37-cp37m-manylinux1_x86_64.whl (647kB)
100% |████████████████████████████████| 655kB 9.3MB/s
Installing collected packages: ruamel.yaml, ruamel.yaml.jinja2
Successfully installed ruamel.yaml-0.15.94 ruamel.yaml.jinja2-0.2.2
(so-55900745) $ pip list
Package Version
------------------ -------
pip 19.1
ruamel.yaml 0.15.94
ruamel.yaml.jinja2 0.2.2
setuptools 40.8.0
(so-55900745) $ python
Python 3.7.3 (default, Apr 3 2019, 11:33:06)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from ruamel.yaml import YAML
>>> yamlLoader = YAML(typ='jinja2')
>>> exit()
(so-55900745) $ deactivate
$ rm -rf /tmp/so-55900745/
$ virtualenv -p /opt/python/2.7/bin/python /tmp/so-55900745
Running virtualenv with interpreter /opt/python/2.7/bin/python
New python executable in /tmp/so-55900745/bin/python
Installing setuptools, pip, wheel...
done.
$ source /tmp/so-55900745/bin/activate
(so-55900745) $ pip install ruamel.yaml.jinja2
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
Collecting ruamel.yaml.jinja2
Using cached https://files.pythonhosted.org/packages/4f/b4/9676d4fa53d921f98f40dcda2ecfdb9fba2b68fbdccec3d9d4d2c87d96a7/ruamel.yaml.jinja2-0.2.2-py2.py3-none-any.whl
Collecting ruamel.yaml>=0.15.10 (from ruamel.yaml.jinja2)
Downloading https://files.pythonhosted.org/packages/a2/59/e8cb144511e47e068efdb71a85f35d00b32fc5f05a9e9a17df265ec252b5/ruamel.yaml-0.15.94-cp27-cp27mu-manylinux1_x86_64.whl (600kB)
|████████████████████████████████| 604kB 2.0MB/s
Collecting ruamel.ordereddict; platform_python_implementation == "CPython" and python_version <= "2.7" (from ruamel.yaml>=0.15.10->ruamel.yaml.jinja2)
Downloading https://files.pythonhosted.org/packages/f3/2c/fa6d75dc459b371ed3b88fdbf8042785ce1655073c884fd97bdbb9f48e01/ruamel.ordereddict-0.4.13-cp27-cp27mu-manylinux1_x86_64.whl (99kB)
|████████████████████████████████| 102kB 12.7MB/s
Installing collected packages: ruamel.ordereddict, ruamel.yaml, ruamel.yaml.jinja2
Successfully installed ruamel.ordereddict-0.4.13 ruamel.yaml-0.15.94 ruamel.yaml.jinja2-0.2.2
(so-55900745) $ python
Python 2.7.15 (default, Aug 10 2018, 11:41:46)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from ruamel.yaml import YAML
>>> yamlLoader = YAML(typ='jinja2')
>>> exit()
(so-55900745) $ deactivate
关于python-2.7 - Ruamel.yaml.jinja2 : typ "jinja2"not recognised on CentOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55900745/
这个问题在这里已经有了答案: pattern matching of the form: Option{..} System m n -> Config n -> R n momen
对于 p、d、q 和数字列表 rollRate 的典型整数值,以下代码: fit = statsmodels.api.tsa.ARIMA(rollRate, (p,d,q)).fit() foreca
抱歉,我是 python 和统计的新手。我对 anova_lm() 函数中的 typ 很好奇。典型值 1、2、3 是什么意思,它们有何不同?这是使用的typ=2的示例代码。 aov_table = s
我有这个数据框: DF V1 V2 P1 03.02.2020 22 04.02.2020 33 05.02.2020 P2 05.02.2020 P1 06.02.2020 我想要这样的
我收到此错误。 org.hibernate.MappingException: Could not determine type for: dom.Whore, at table: Me
我有一个方法应该为每个文档集添加一个服务器时间戳。 Future _setDocument(String path, {Map inputData}) async { final outp
我正在尝试了解 typ 和 pure=True 在 ruamel.yaml Python 库中的含义。 我已阅读文档 here . 到目前为止,我已经了解 typ='safe' 使用安全加载程序,它省
我正在用 python 编写脚本来更新一些包含 jinja2 的 YAML 配置文件。我找到了这个 answer展示了如何使用 ruamel.yaml 和 ruamel.yaml.jinja2 包进行
我正在尝试验证和解码前端发送的 id token 。 运行验证函数时出现此错误。 有时它可能会起作用。 No pem found for envelope: {"alg":"RS256","kid":
我正在编写一段代码,其中我允许用户使用 Intent 将事件添加到日历中,但是每当我尝试将事件插入到较低版本中时,都会得到:不幸的是应用程序已停止和错误是: android.content.Activ
我是一名优秀的程序员,十分优秀!