python - 生成示例项目配置
问题描述
我正在开发一个包含 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 命令时将它们转储到实际文件中。
这个问题有更好的选择吗?
解决方案
临时解决方案,直到出现更好的解决方案:
在某个目录下的包中包含任何配置文件
project/project_template
include_package_data=True
使用setup()
方法运送包裹用于
pkgutil.get_data
获取这些文件的内容:import pkgutil data = pkgutil.get_data('project', 'project_template/config.dat')
创建新目录并将感兴趣的文件复制到新创建的目录
推荐阅读
- php - 如何在 Foreach 中对值求和
- cmd - cmd 重定向:相当于 bash exec >file
- laravel - 在 laravel 的购物车会话中保存图像路径
- keras - 奇怪的 ROC 曲线 fpr>tpr ,我该如何改善它?
- java - Spring 中的表单验证 5
- php - 未定义的索引名称,在 PHP 中上传图像文件时。我只是为我的项目测试这个模块
- codecov - 我可以使用 api 在 codecov 中更改私有 repo 的默认分支吗?
- vba - 如何在 PowerPoint 中选择多张幻灯片,然后多次复制它们?
- amazon-rekognition - AWS Rekognition:如何比较两辆车
- google-cloud-platform - 导出谷歌云视频智能模型