Jes*_*sse 5 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
Run Code Online (Sandbox Code Playgroud)
这是我的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'])],
)
Run Code Online (Sandbox Code Playgroud)
在我的 MANIFEST.in 文件中,我只有 include config/spt.config
我正在使用虚拟环境,所以我也不会在我的系统上搞砸。
为了安装我的包,我pip install -e .从包目录运行。
就像我说的,这会安装我的实用工具,spt很好,但我找不到data_files列表中的配置文件在哪里或是否被复制到任何地方。它不在我的home目录中,因为我运行了find -type f -name "spt.config"并且没有显示其他结果。
如果我运行python3 setup.py install它确实安装到正确的位置。
是否需要像这个答案中那样的安装后脚本?我认为这是 setuptools 应该能够做的事情,但我想我在某处读到这也是 setuptools 的一个功能。似乎我必须做一些事情才能让 pip 识别它。
感谢您提供指向执行类似操作的示例项目的任何指针或链接。