python:在已发布的文件集中提供YAML支持,无需用户手动安装PyYAML或libYAML

时间:2013-04-12 15:59:43

标签: python yaml

我正在尝试找到一种解析YAML的方法,我将向我的一些同事发布一小段Python脚本。

这些用户虽然聪明但是电气工程专家,他们在编程或软件安装方面的专业知识很少,所以我需要让他们尽可能轻松地使用我的脚本。

他们的Python环境将是从python.org下载的普通Python 2.7发行版,或者是Enthought Python Distribution的免费版本。没有安装PyYAML或libYAML。

所以我的困境是如何在我分发的脚本中包含YAML支持。

我不想让我的最终用户通过easy_install或pip;它对我来说相当容易,但它们可能会遇到问题,就像我第一次尝试查找setuptools.py时那样。他们也可能没有root / Administrator访问权限来安装其他系统软件包(python可能由IT人员在他们的计算机上预先安装),如this SO question中所述。

在这些情况下,您对如何解析YAML文件有什么建议吗?

2 个答案:

答案 0 :(得分:2)

是否有某些原因你不能只在你分发的文件中包含YAML解析器的Python源代码?

PyYAML声称包含一个纯Python实现,所以将它与你的包捆绑在一起应该是相当简单的。

如果您只是解析分发文件中包含的YAML文件,那么另一个选项可能是将它们预先转换为Python基础库可以处理的其他格式。

答案 1 :(得分:2)

根据Aya的建议,我将PyYaml版本(https://bitbucket.org/xi/pyyaml/src)中的/lib/yaml目录复制到我的脚本目录中:

+ my-python-scripts
|
+-- myScript.py
|
+-+ yaml
  |
  +-- __init__.py
  +-- composer.py
  +-- constructor.py
  .
  .
  .

然后我可以在我的脚本中使用import yaml,它运行正常。无需全局安装。