python - 使用 setuptools 运行额外的卸载脚本

标签 python linux python-3.x command-line 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 运行额外的卸载脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47423878/

相关文章:

Python Numpy - 二维数组中的 3 维索引,无循环

windows - Windows 的 tsocks 替代品

python - 这是创建 numpy 数组的只读 View 的正确方法吗?

python - 使用 Beautifulsoup 进行网页抓取并收集表格文本值

python - 如何在Python中绘制y轴为 "total of y values corresponding to each x bin"、x轴为n个x的直方图?

python - 来自导入 : GObject 的 undefined variable

python - 在 Windows 上从 Python 脚本中终止由批处理文件启动的外部进程

php - php上传文件时group和owner权限错误

node.js - 在离线 RHEL 上安装 pm2 的确切命令是什么

python - 生产者多消费者问题,消费者在生产者完成之前完成工作