Python Setuptools将其他文件安装到用户config目录

时间:2017-07-04 13:59:41

标签: python pip setuptools

我正在尝试创建一个具有实用命令行程序的Python模块。 我正在使用setuptools和Python3。我使用entry_points安装字段创建了实用程序,但是我希望包含一个默认配置文件,我想将它放在用户的主.config目录中。

这是我的包目录布局:

⤷ tree
.
├── config
│   └── spt.config
├── README.org
├── utilityTool
│   ├── __init__.py
│   ├── file1.py
│   ├── file2.py
│   └── tools
│       ├── commandline.py
│       ├── __init__.py
└── setup.py
└── MANIFEST.in

这是我的setup.py

import utilityTool
from setuptools import setup, find_packages
import os

setup(name='utilityTool',
      version=utilityTool.__version__,
      description='A utility tool',
      long_description='Longer package description',
      classifiers=[
          'Development Status :: 3 - Alpha',
          'License :: OSI Approved :: MIT License',
          'Programming Language :: Python :: 3',
          'Topic :: Software Development :: Build Tools',
          'Topic :: Utilities',
      ],
      keywords='utility tool',
      license='MIT',
      packages=find_packages(),
      install_requires=['yapsy', 'argparse'],
      include_package_data=True,
      zip_safe=False,
      entry_points={'console_scripts':['spt = utilityTool.tools.commandline:main']},
      data_files=[('{}/.config/spt/'.format(os.environ['HOME']),['config/spt.config'])],
)

在我的MANIFEST.in文件中,我只有include config/spt.config

我正在使用虚拟环境,所以我也不会在我的系统上搞砸了。

要安装我的软件包,我从软件包目录运行pip install -e .

就像我说的那样安装我的实用工具spt,就好了,但我无法找到我在data_files列表中的配置文件在哪里被复制到任何地方。它不在我的home目录中,因为我运行find -type f -name "spt.config"并且没有显示其他结果。

如果我运行python3 setup.py install,它会安装到正确的位置。

是否需要像this answer中那样安装后脚本?我认为这是setuptools应该能够做的事情,但我想我在某处读到这也是setuptools的一个特性。似乎只有我必须要做的事情才能让pip认出它。

感谢您指向类似内容的示例项目的任何指针或链接。

0 个答案:

没有答案