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

时间:2018-03-02 13:53:06

标签: python python-3.x manifest packaging

我有这个小程序用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 的位置。

有谁知道存储非代码数据文件的位置?

谢谢!

2 个答案:

答案 0 :(得分:0)

通常,软件包数据应位于软件包目录中(例如main.py除外)。
readme.txt,许可证,详细说明,因为根目录中的软件包数据主要用于sdist,pypi中,而不会安装。

答案 1 :(得分:0)

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

  • 我将初始项目的结构改成了这样:

    self.sessions.text(message)
    

您可以看到 app.config 文件已移动到 awesome_gui/ 项目文件夹中,并且还创建了一个名为 src 的文件夹,并将代码移入其中。

  • setup.py 文件也被编辑:

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

entry_points<中添加了src文件夹/em> 字段。还添加了带有非 python 文件的 package_data 字段。

  • 通过添加文件夹级别,还修改了 MANIFEST.in

    #!/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']},
     )
    

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