setuptools - 使用 setup.py 自定义 python 包目录布局

标签 setuptools setup.py distutils python-packaging

假设我有以下目录结构:

src/
└── python/
    └── generated/
        ├── __init__.py
        ├── a.py
        └── lib/
            ├── __init__.py
            └── b.py

我的 setup.py 需要是什么样子才能创建目录布局如下的 dist:

src/
└── python/
    ├── __init__.py
    ├── a.py
    └── lib/
        ├── __init__.py
        └── b.py

目标是简单地消除 generated 文件夹。我已经尝试了无数种 package_dir 的变体,除了原始目录结构之外,什么也得不到。

最佳答案

您的 setup.py 应该放在您的 src 目录中,并且应该如下所示:

#!/usr/bin/env python3

import setuptools

setuptools.setup(
    name='Thing',
    version='1.2.3',
    packages=[
        'python',
        'python.lib',
    ],
    package_dir={
        'python': 'python/generated',
    },
)

注意 package_dir 设置。它指示 setuptools 从目录 python/generated 中获取 python 包的代码。然后,在构建的 发行版中,您将找到正确的目录结构。

关于setuptools - 使用 setup.py 自定义 python 包目录布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57811009/

相关文章:

python - 获取 Gitlab 的持续集成来编译用 C 编写的 Python 扩展

python - pip 安装语言检查不起作用

python - 使用 distutils 的 setup.py 编译 C 共享库,当库依赖于第二个共享库时

python - 如何覆盖 PBR 中的要求?

Python打包麻烦(ppt) : Getting error when trying to run my packaged project that uses a non-. 命令行下的py文件

python - 仅在 setup.py 中可能时编译可选的 cython 扩展

python - 如何使用 setuptools 安装 python cli 脚本而不重复?

python - 修改 setup.py 以支持从 github 进行 pip 安装

python - 在 setup.py 中声明我的包的可选组件

c++ - Python C++ 扩展 : compile only modified source files