我正在处理一个包含cli组件的软件包,您可以从中开始一个新项目。这个新创建的项目将严重依赖于各种配置,泊坞窗和其他文件。我想要一个cli命令,例如myproject init
,它可以创建一个新目录并在其中复制各种文件,从而使用户的生活更加轻松。
现在,项目本身是可pip安装的,因此我添加到项目中的每个文件都将位于site-packages
目录中的某个位置。将这些示例配置文件添加到项目中似乎不是一个好选择,因为找到它们的位置很难。
到目前为止,我发现的最佳解决方案是将配置作为字符串添加到python文件中:
INIT_FILE_MODEL_TEMPLATE = """---
version: 1
kind: experiment
logging:
level: INFO
model:
# set you model
"""
,然后在调用init命令时将其转储到实际文件中。
有没有更好的选择来解决这个问题?
答案 0 :(得分:0)
临时解决方案,直到出现更好的解决方案为止:
在某个目录project/project_template
使用include_package_data=True
方法中的setup()
运送包裹
使用pkgutil.get_data
获取这些文件的内容:
import pkgutil
data = pkgutil.get_data('project', 'project_template/config.dat')
创建新目录并将感兴趣的文件复制到新创建的目录