Python wheel 在使用 bdist_wheel 后不包含项目,而 __init__.py 在根目录中

Python wheel does not contain project after using bdist_wheel while __init__.py is in root

我有一个项目想使用 whl 进行分发。我有一个看起来像这样的项目树:

ProjectName
    ModuleFolder
       some_modules.py
    ModuleFolder2
        more_modules.py
    __init__.py
    main.py
    requirements.txt
    setup.py

我的 setup.py 看起来像这样:

from setuptools import setup, find_packages

setup(
    name='ProjectName',
    version='1.0',
    author='Menno Manheim',
    author_email='mymail@example.com',
    description='Project description',
    packages=find_packages()
)

现在我正在尝试创建一个像这样的 wheel 包:

python setup.py bdist_wheel

创建了一个 whl 包,但它只包含一个文件夹。它被命名为 "ProjectName-1.0.dist.info",在这个文件夹中我只能看到这些 1KB 的文件:

MEDADATA
RECORD
top_level.txt
WHEEL

我预计 whl 文件将包含完整的 ProjectName 树,包括根文件。

我错过了什么?

顺便说一句。我在 PyCharm 工作,我正在使用 venv。

find_packages() 函数找不到您的包,因为您没有声明 ModuleFolderModuleFolder

您应该将 __init__.py 插入到两个文件夹中。

此外,请注意根文件夹不是包,所以__init__有多余。

编辑:python 打包机构 (PyPA) 的正式示例项目结构可以在 here.

中找到