【问题标题】:Generate sample project configuration生成示例项目配置
【发布时间】:2019-01-05 16:05:18
【问题描述】:

我正在开发一个包含 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 命令时将它们转储到实际文件中。

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

【问题讨论】:

  • 您是否正在尝试做类似于“django-admin startproject mysite”所做的事情,但在 python 中进行命令行实用程序开发?
  • 我不太了解 django 的工作原理,但乍一看是的,它是类似的。基本上是创建一些样板功能和配置

标签: python python-3.x configuration configuration-files


【解决方案1】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2017-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-13
    • 1970-01-01
    • 2023-04-09
    相关资源
    最近更新 更多