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

Rib*_*bes 6 python packaging manifest python-3.x

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

awesome_gui/
    app.config
    MANIFEST.in
    setup.py
    awesome_gui/
       __init__.py
       main.py  
Run Code Online (Sandbox Code Playgroud)

设置.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,
)
Run Code Online (Sandbox Code Playgroud)

清单文件

include app.config
Run Code Online (Sandbox Code Playgroud)

执行以下行并创建 .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的保存位置。

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

谢谢!

Rib*_*bes 1

因为有人问我如何解决这个问题,我在下面描述一下。我对最初的方法做了以下操作:

您可以看到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']},
     )
    
    Run Code Online (Sandbox Code Playgroud)

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

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