我正在构建一个小的命令行软件(假设它名为Stanley),并用setuptools将其打包。我的项目基本上是这样的:
Stanley / __init__.py
/ foo.py
/ bar.py
/ datafiles / preference_file_1.metadata
/ ...
/ preference_file_n.metadata
LICENSE
MANIFEST.in
README.md
setup.cfg
setup.py
Stanley需要在datafiles文件夹中创建一些首选项文件,但无法导入现有的首选项文件(例如,使用setuptools.setup()
中的data_files
参数),因为它们将包含用户在安装后提供的信息。此外,我不能预先创建空文件,因为我无法预先知道将创建多少个这些文件。在
我需要这个文件夹创建一次,在安装斯坦利时。Stanley在该文件夹中创建的任何文件在每次更新时都必须保持完整。也就是说,当用户运行$ pip3 install stanley --upgrade
时,文件夹datafiles中包含的所有首选项都将被保留。所以我的问题是:
1)如何使用setuptools创建目录数据文件? 2) 如何确保我的软件在数据文件中创建的文件不会被更改,并且在重新安装或更新后仍可在数据文件中访问?在
请注意,这是我第一次编写一个“真正的”软件,包括编码、测试、打包、分发(尽管PyPi和Python为我做了很多工作),因此,我不知道有多少好的实践,如果你告诉我,我目前管理用户偏好的方法不正确,我很乐意改变它为了适应更高的标准。如果我的问题不清楚,我会让你明白的。在
非常感谢。在
不要用setuptools创建它们;编写包,以便在需要文件时在适当的位置创建文件。在
文件存储在包的代码之外,因此不受卸载或更新的影响。在
相关问题 更多 >
编程相关推荐