MANIFEST.IN中包含的数据文件存储在哪里?

Where are the data files included in MANIFEST.IN stored?

我让这个小程序用 Python3.5 做,结构如下:

awesome_gui/
    app.config
    MANIFEST.in
    setup.py
    awesome_gui/
       __init__.py
       main.py  

setup.py:

#!/usr/bin/env python

import os
from setuptools import setup


setup(
    name = "awesomegui",
    version = "1.0",
    author = "Me",
    author_email = "me@example.com",
    description = "Awesome GUI",
    packages=['awesome_gui'],
    entry_points = {
    'console_scripts': ['awesomegui=awesome_gui.main'],
    },
    include_package_data=True,
)

MANIFEST.in

include app.config

执行以下行并创建 .deb:

$ python3 setup.py --command-packages=stdeb.command bdist_deb

并解压:

$ sudo dpkg -i deb_dist/python3-awesomegui_1.0-1_all.deb

代码(*.py)保存在/usr/lib/python3/dist-packages/awesome_gui/中。但是我没有看到 app.config 保存在哪里。

有谁知道非代码的数据文件存放在哪里?

谢谢!

正常情况下,包数据应该在包目录中(除了main.py之外)。
readme.txt, license, long description as package data in root directory 多用于sdist, pypi,不会被安装

因为有人问我是怎么解决的,所以我在下面描述一下。我对初始方法做了以下操作:

  • 我将初始项目的结构更改为这个:

    awesome_gui/
        MANIFEST.in
        setup.py        
        awesome_gui/
            app.config
            src/
                __init__.py
                main.py  
    

可以看到app.config文件已经移动到awesome_gui/ 项目文件夹和名为 src 的文件夹也已创建,并且代码移入其中。

  • setup.py 文件也被编辑:

    #!/usr/bin/env python
    
    import os
    from setuptools import setup
    
    
    setup(
        name = "awesomegui",
        version = "1.0",
        author = "Me",
        author_email = "me@example.com",
        description = "Awesome GUI",
        packages=['awesome_gui',
                  'awesome_gui.src',
                  ],
        entry_points = {
        'console_scripts': ['awesomegui=awesome_gui.src.main:main'],
        },
        include_package_data=True,
        package_data={"awesome_gui": ['app.config']},
     )
    

packages 中添加了 src 文件夹在 entry_points 字段中。还添加了带有非 python 文件的 package_data 字段。

  • 通过添加文件夹级别,MANIFEST.in也进行了修改:

    include awesome_gui/app.config
    

使用命令安装后,通过这些步骤,我将非 python 文件放在 /usr/lib/python3/dist-packages/awesome_gui/ 文件夹中。