Python 安装数据文件的完整目录

Python 安装数据文件的完整目录,python,setuptools,Python,Setuptools,我正在尝试使用setup.py和setuptools为我的项目构建一个包。一般搜索建议将数据文件放在我的python包下。 例如,project/src/package/data 但我的情况更符合事实 我的项目由一个Python控制台应用程序和一个HTML交互应用程序组成。现在(在setup.py之前),我让控制台应用程序使用特殊命令将HTML文件复制到特定目录。我在源代码管理中遵循这个目录结构 project |-+ console | |-+ package | |-- __

我正在尝试使用
setup.py
和setuptools为我的项目构建一个包。一般搜索建议将数据文件放在我的python包下。
例如,
project/src/package/data

但我的情况更符合事实

我的项目由一个Python控制台应用程序和一个HTML交互应用程序组成。现在(在
setup.py
之前),我让控制台应用程序使用特殊命令将HTML文件复制到特定目录。我在源代码管理中遵循这个目录结构

project
|-+ console
|   |-+ package
|       |-- __init__.py, etc.
|-+ viz
    |-+ css
    |-+ js
    |-- index.html
我不确定如何使用
setup.py
和egg文件复制这种行为

  • 如何确保
    viz
    将被打包?
    package_data
    选项似乎与包相关(意味着
    viz
    应该放在包下)

    所以,
    package_data={'':['viz/*']}
    不是我想要的

  • 提取是如何完成的?
    我是否应该使用
    pkg\u resources.resource\u filename
    viz
    放入缓存,然后
    shutil
    将文件复制到指定位置?还有更实际的替代方案吗


  • 我考虑过改变整个结构,将
    viz
    转换成一个包,同时移动安装它的代码。结果是这样的

    project
    |-- setup.py
    |-+ top-level-package
        |-- __init__.py
        |-+ console
        |   |-- __init__.py, etc.
        |-+ viz
            |-+ css
            |-+ js
            |-- index.html
            |-- __init__.py
    
    虽然这本可以奏效,但我发现这实际上符合我最初的目的
    setup.py
    必须以
    package\u data
    的形式递归复制文件(相对路径使用

    我刚刚将原来的
    控制台
    折叠成一个,因此Python包直接位于项目根目录下。这是我最后的结构

    project
    |-- setup.py
    |-+ package
    |   |-- __init__.py, etc.
    |   |-+ private
    |       |-- ...
    |-+ viz
        |-+ css
        |-+ js
        |-- index.html
    

    我考虑过改变整个结构,将
    viz
    转换成一个包,同时移动安装它的代码。结果是这样的

    project
    |-- setup.py
    |-+ top-level-package
        |-- __init__.py
        |-+ console
        |   |-- __init__.py, etc.
        |-+ viz
            |-+ css
            |-+ js
            |-- index.html
            |-- __init__.py
    
    虽然这本可以奏效,但我发现这实际上符合我最初的目的
    setup.py
    必须以
    package\u data
    的形式递归复制文件(相对路径使用

    我刚刚将原来的
    控制台
    折叠成一个,因此Python包直接位于项目根目录下。这是我最后的结构

    project
    |-- setup.py
    |-+ package
    |   |-- __init__.py, etc.
    |   |-+ private
    |       |-- ...
    |-+ viz
        |-+ css
        |-+ js
        |-- index.html