运行 一个额外的带有安装工具的卸载脚本

Run a additional uninstall script with setuptools

因此,我正在编写一个简单的命令行 Python 应用程序来维护一些用户数据。我想实施 setuptools 来简化构建和分发过程,但我找不到管理用户文件的好解决方案。

/etc/appname 中创建用户目录很容易,但是当用户想要卸载我的应用程序时,大概是:

sudo pip uninstall appname

它不会删除保存用户的 /etc/appname 目录。它只会删除 .egg 文件。

有没有一种方法可以在 setup.py 中指定一个脚本,该脚本将在调用卸载时 运行,以便我可以手动删除我创建的目录?

或者是否有一个选项可以让 setuptools 创建一个数据目录,以便从应用程序读取和写入文件,而不仅仅是只读配置文件?

我没有找到使用 setuptools 管理动态文件的正确方法,所以我使用了 Makefile。它创建程序引用的目录,然后运行 ​​setuptools 来收集 pip 包并将脚本安装到 /usr/bin.

install:
    mkdir -p ~/.appname/users
    sudo python setup.py install
    cp -u appname/users/* ~/.appname/users

uninstall:
    sudo rm -rf ~/.appname
    sudo pip uninstall appname