我正在尝试使用我的python setuptools项目找到一个发布默认配置文件的好方法。
现在我这样做:
from setuptools import setup
setup(
...
data_files = [('/usr/local/etc', ['files/myproject.conf', ...])]
...
)
问题是如果卸载我的软件包,配置文件将被删除。通常,在Linux或FreeBSD上卸载软件包时,不会删除配置文件。我认为这很好,因为有时你只是想卸载一个软件包来重新安装另一个版本,或者用其他选项等安装它......你不希望你的配置文件被删除。
如何使用setuptools实现相同的目标?如何配置文件只有在尚不存在的情况下才能安装?
答案 0 :(得分:0)
为什么不能? setup.py
也是一个python脚本,也许您可以手动添加配置文件以避免将它们添加到元数据中?如下代码:
from setuptools import setup
from shutil import copyfile
import os
...
setup(
...
# no data_files option
...
)
if not os.path.exists(configuration_file):
copyfile(configuration, configuration_file)