首页 > 解决方案 > 生成示例项目配置

问题描述

我正在开发一个包含 cli 组件的包,您可以从中开始一个新项目。这个新创建的项目将严重依赖各种配置、docker 和其他文件。我想要一个 cli 命令,比如说,myproject init它创建一个新目录,并在其中复制各种文件,让用户的生活更轻松。

现在,项目本身是 pip 可安装的,所以我添加到项目中的每个文件都将位于site-packages目录中的某个位置。将这些示例配置文件添加到项目中似乎不是一个好的选择,因为很难找到它们的安装位置。

到目前为止,我发现的最佳解决方案是将配置作为字符串添加到 python 文件中:

INIT_FILE_MODEL_TEMPLATE = """---
version: 1

kind: experiment

logging:
  level: INFO

model:
  # set you model
"""

然后在调用 init 命令时将它们转储到实际文件中。

这个问题有更好的选择吗?

标签: pythonpython-3.xconfigurationconfiguration-files

解决方案


临时解决方案,直到出现更好的解决方案:

  1. 在某个目录下的包中包含任何配置文件project/project_template

  2. include_package_data=True使用setup()方法运送包裹

  3. 用于pkgutil.get_data获取这些文件的内容:

    import pkgutil
    data = pkgutil.get_data('project', 'project_template/config.dat')
    
  4. 创建新目录并将感兴趣的文件复制到新创建的目录


推荐阅读