python-3.x - 通过 setuptools 部署用户配置
问题描述
我使用“setuptools”来打包 Python 项目,却一无所获。我写了一个供个人使用的小实用程序,它有一个我想放在 ~/.config/workon/config.json 下的配置文件,所以我这样做:https ://github.com/ReturnedVoid/workon/blob/主/setup.py#L15。然后像这样安装我的实用程序:https ://github.com/ReturnedVoid/workon/blob/master/Makefile#L20 。
它有效,但存在一些问题:
- 有时(我不知道为什么)当我安装新版本的实用程序时,配置文件被覆盖
- “pip”对配置文件一无所知,并且在我删除软件包时不会删除它
- 如果我尝试使用
python3 -m pip install .
命令安装它,则配置文件是相对于“站点包”安装的(不是我想要的)
我还尝试覆盖“setuptools”install
命令来复制配置文件,但它只解决了上述(1)问题。
所以问题是:有没有办法简单地将我的配置文件复制到 ~/.config/... 所以它会被删除pip uninstall
?也许有更好的方法来处理用户配置?
更新:我看到这些选项适合我的情况:
- 在文档中描述配置格式及其预期位置。所以让用户在需要时创建一个配置文件
- 构建一些能够执行此操作的分发包。例如 Debian 软件包...
- 在初始实用程序运行时生成配置文件
但是它们都不是令人愉快的 :) 对我来说克隆项目、运行make install
、填充配置文件并忘记它会很方便。
解决方案
推荐阅读
- ruby-on-rails - 语法错误,将 ERB 放入 image_tag ID 时出现意外的“>”
- xml - XSD 验证键值元素
- react-native - 如何将图像数据从一个类获取到另一个类
- multithreading - 在 OnCreate 方法 Xamarin.Android 中使用线程时,只有创建视图层次结构的原始线程才能触及其视图异常
- terraform - Terraform Digitalocean:移动项目下的资源
- azure - 是否可以在 Azure DevOps 代理池中的所有现有代理之间分散管道负载?
- javascript - 模块化服务提供者 node.js
- javascript - 在 Vue js 中的大型模块上的文本输入或文本区域中键入缓慢
- java - 如何在 Vscode 中启用 java linter?
- loops - 如何检查此特定输入?