Setuptools:如何在不删除现有配置文件的情况下分发配置文件?

时间:2017-06-03 16:27:01

标签: python pip setuptools

我正在尝试使用我的python setuptools项目找到一个发布默认配置文件的好方法。

现在我这样做:

from setuptools import setup

setup(
    ...
    data_files = [('/usr/local/etc', ['files/myproject.conf', ...])]
    ...
)

问题是如果卸载我的软件包,配置文件将被删除。通常,在Linux或FreeBSD上卸载软件包时,不会删除配置文件。我认为这很好,因为有时你只是想卸载一个软件包来重新安装另一个版本,或者用其他选项等安装它......你不希望你的配置文件被删除。

如何使用setuptools实现相同的目标?如何配置文件只有在尚不存在的情况下才能安装?

1 个答案:

答案 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)