【发布时间】:2016-10-22 14:10:02
【问题描述】:
我在 Python setuptools 中遇到了先有鸡还是先有蛋的问题。
我想要实现的是将配置文件与我的 pip 包(这本身完全可以使用setup.py 中的data_files 参数)分发到操作系统特定的用户配置文件的公共位置(例如@987654324 @ 在 Linux 上)。
我发现操作系统“特异性”可以使用appdirs[1] PyPi 包来解决。还有我的问题 - 安装我自己的包时不能保证安装appdirs,因为它是我的包的依赖项,因此安装在它之后(承诺的鸡肉或鸡蛋:))
我的setup.py 包含这样的内容:
from setuptools import setup
from appdirs import AppDirs
...
setup(
...
data_files=[
(AppDirs(name, author).user_config_dir, ['config/myconfig'])
],
...
)
不编写我自己的 setuptools 版本可以解决这个问题吗(暗示;))?
【问题讨论】:
-
不完全回答您的问题,但我的建议是使用
data_files分发您的文件的通用 副本,然后在您的应用程序首次运行时,与@987654330 联系@ 如果用户特定文件存在,如果不存在,则在第一次运行时通过复制分发的文件来创建它(您可以使用pkg_resources找到它)。 -
@shevron 这实际上是比我最初的想法更好的解决方案! :) 不幸的是,我正在为
pkg_resources苦苦挣扎。请您回答(最好用简短的 sn-p 怎么样),以便我可以将其标记为正确? ;)
标签: python setuptools setup.py