Колесо Python не содержит проекта после использования bdist_wheel, пока __init__.py находится в корне - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть проект, который я хочу распространять, используя 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», и в этой папке я вижу только следующие файлы размером 1 КБ:

MEDADATA
RECORD
top_level.txt
WHEEL

Я ожидал, что whl-файл будет содержать полное дерево ProjectName, включая корневые файлы.

Что я пропустил?

Кстати. Я работаю в PyCharm и использую venv.

1 Ответ

0 голосов
/ 08 ноября 2019

функция find_packages() не находит ваши пакеты, потому что вы не объявили свои ModuleFolder и ModuleFolder как таковые.

Вы должны вставить __init__.py в обе папки.

Кроме того, обратите внимание, что корневая папка не является пакетом, поэтому __init__ там избыточен.

Редактировать: Формальный пример структуры проекта из Python Authority (PyPA) можно найти здесь .

...