运行 一个额外的带有安装工具的卸载脚本
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
因此,我正在编写一个简单的命令行 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