代码之家  ›  专栏  ›  技术社区  ›  user1767754

我如何在setuptools中提供像.png.jpg这样的资源文件,这些文件不是包数据[duplicate]

  •  0
  • user1767754  · 技术社区  · 6 年前

    我想包括 ./static/data.txt setuptools

    # setup.py
    import os,glob
    from setuptools import setup,find_packages
    
    setup(
        name = "PotatoProject",
        version = "0.1.1",
        author = "Master Splinter",
        author_email = "splinter@initech.com",
        description = ("The potatoproject!"),
        url = 'http://www.google.com',
        license = "BSD",
    
        # adding packages
        packages=find_packages('src'),
        package_dir = {'':'src'},
    
        # trying to add files...
        include_package_data = True,
        package_data = {
            '': ['*.txt'],
            '': ['static/*.txt'],
            'static': ['*.txt'],
        },
    
        scripts=['src/startPotato'],
        classifiers=[
            "Development Status :: 3 - Alpha",
            "Topic :: Utilities",
            "License :: OSI Approved :: BSD License",
        ],
    )
    

    文件系统:

    .
    ├── setup.py
    └── src
        ├── distutils_setup.py
        ├── Potato
        │   ├── __init__.py
        │   ├── potatoData.txt
        │   └── printer.py
        ├── startPotato
        ├── static
        │   └── data.txt
        └── Tomato
            ├── big.py
            └── __init__.py
    

    运行时的输出: python setup.py sdist

    running sdist
    running egg_info
    creating src/PotatoProject.egg-info
    writing src/PotatoProject.egg-info/PKG-INFO
    writing top-level names to src/PotatoProject.egg-info/top_level.txt
    writing dependency_links to src/PotatoProject.egg-info/dependency_links.txt
    writing manifest file 'src/PotatoProject.egg-info/SOURCES.txt'
    reading manifest file 'src/PotatoProject.egg-info/SOURCES.txt'
    writing manifest file 'src/PotatoProject.egg-info/SOURCES.txt'
    warning: sdist: standard file not found: should have one of README, README.txt
    
    creating PotatoProject-0.1.1
    creating PotatoProject-0.1.1/src
    creating PotatoProject-0.1.1/src/Potato
    creating PotatoProject-0.1.1/src/PotatoProject.egg-info
    creating PotatoProject-0.1.1/src/Tomato
    making hard links in PotatoProject-0.1.1...
    hard linking setup.py -> PotatoProject-0.1.1
    hard linking src/startPotato -> PotatoProject-0.1.1/src
    hard linking src/Potato/__init__.py -> PotatoProject-0.1.1/src/Potato
    hard linking src/Potato/printer.py -> PotatoProject-0.1.1/src/Potato
    hard linking src/PotatoProject.egg-info/PKG-INFO -> PotatoProject-0.1.1/src/PotatoProject.egg-info
    hard linking src/PotatoProject.egg-info/SOURCES.txt -> PotatoProject-0.1.1/src/PotatoProject.egg-info
    hard linking src/PotatoProject.egg-info/dependency_links.txt -> PotatoProject-0.1.1/src/PotatoProject.egg-info
    hard linking src/PotatoProject.egg-info/top_level.txt -> PotatoProject-0.1.1/src/PotatoProject.egg-info
    hard linking src/Tomato/__init__.py -> PotatoProject-0.1.1/src/Tomato
    hard linking src/Tomato/big.py -> PotatoProject-0.1.1/src/Tomato
    Writing PotatoProject-0.1.1/setup.cfg
    creating dist
    Creating tar archive
    removing 'PotatoProject-0.1.1' (and everything under it)
    

    没有添加文本!不 static/data.txt 也不是 Potato/potatoData.txt ...

    我错过了什么?!

    0 回复  |  直到 5 年前
        1
  •  133
  •   joaoricardo000    3 年前

    正如注释中指出的,有两种方法可以添加静态文件:

    A MANIFEST.in 同一目录下的文件 setup.py

    include src/static/*
    include src/Potato/*.txt
    

    include_package_data = True 设置.py .

    2-在setup.py中打包\u数据

    package_data = {
        'static': ['*'],
        'Potato': ['*.txt']
    }
    

    设置.py .


    include_package_data package_data 在里面 设置.py

    包含包数据 数据包 信息。


    https://setuptools.readthedocs.io/en/latest/userguide/datafiles.html

        2
  •  28
  •   Anton Danilchenko    11 年前

    递归包含所有文件:

    recursive-include project_name/templates *
    recursive-include project_name/static *
    

    project_name 是一个文件夹,在同一行中 setup.py 文件。

        3
  •  11
  •   emispowder    8 年前

    根据文件,有 three ways here

        4
  •  7
  •   Dadaso Zanzane    10 年前

    使用下列内容

    packages = ['.','templates','static','docs'],
    
    package_data={'templates':['*'],'static':['*'],'docs':['*'],},