【问题标题】:Python wheel does not contain project after using bdist_wheel while __init__.py is in root使用 bdist_wheel 后 Python 轮不包含项目,而 __init__.py 位于根目录中
【发布时间】:2020-03-05 04:46:19
【问题描述】:

我有一个想要使用 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()
)

现在我正在尝试创建一个这样的轮子包:

python setup.py bdist_wheel

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

MEDADATA
RECORD
top_level.txt
WHEEL

我希望 whl 文件包含完整的 ProjectName 树,包括根文件。

我错过了什么?

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

【问题讨论】:

    标签: python python-3.x python-wheel


    【解决方案1】:

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

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

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

    编辑:来自 python 打包机构 (PyPA) 的正式示例项目结构可以在 here 找到。

    【讨论】:

    • 那么是不是不能在根目录下有main.py?
    • 你应该在根目录下有一个主包(通常与你的项目文件夹相同)并将 main.py 放在那里。
    • 是的!有效!只是缺少一些我现在添加为包数据的根文件,但我会弄清楚的。
    猜你喜欢
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    • 2015-07-30
    • 2021-09-13
    • 2018-10-09
    • 2016-11-24
    相关资源
    最近更新 更多