Файл Wheel, не включая каталог шаблонов и корневые файлы в пакете PythonPython

Программы на Python
Ответить
Anonymous
 Файл Wheel, не включая каталог шаблонов и корневые файлы в пакете Python

Сообщение Anonymous »

Справочная информация:
Я новичок в использовании стандартных инструментов упаковки Python и обычно использую специальные инструменты. Однако я решил лучше понять процесс упаковки, но столкнулся с проблемой.
Я пытаюсь создать артефакты для распространения моего приложения, и мне Я успешно сгенерировал файл sdist и файл колеса. Хотя я, вероятно, мог бы настроить процесс установки из файла sdist, я обеспокоен тем, что могу что-то упустить. Однако файл колеса создается с неполной инвентаризацией.
Структура проекта:

Код: Выделить всё

.
├── bin
│   ├── conn_mgr.sh
│   └── ora_tapi.sh
├── config
│   ├── OraTAPI.ini
│   └── OraTAPI.ini.sample
├── controller
│   ├── conn_mgr.py
│   ├── __init__.py
│   └── ora_tapi.py
├── lib
│   ├── config_manager.py
│   └── __init__.py
├── LICENSE
├── MANIFEST.in
├── model
│   ├── api_generator.py
│   ├── db_objects.py
│   ├── framework_errors.py
│   ├── __init__.py
│   ├── session_manager.py
│   └── user_security.py
├── pyproject.toml
├── README.md
├── requirements.txt
├── setup.py
├── setup.sh
├── templates
│   ├── column_expressions
│   │   ├── inserts
│   │   │   └── updated_on.tpt
│   │   └── updates
│   │       └── updated_on.tpt
│   ├── misc
│   │   ├── trigger
│   │   │   └── table_name_biu.tpt
│   │   └── view
│   │       └── view.tpt
│   └── packages
│       ├── body
│       │   ├── package_footer.tpt
│       │   └── package_header.tpt
│       ├── procedures
│       │   ├── delete.tpt
│       │   ├── insert.tpt
│       │   ├── select.tpt
│       │   └── update.tpt
│       └── spec
│           ├── package_footer.tpt
│           └── package_header.tpt
└── view
├── console_display.py
├── __init__.py
├── interactions.py
└── ora_tapi_csv.py

Код: Выделить всё

setup.py
Файл:[/b]

Код: Выделить всё

from setuptools import setup, find_packages

setup(
name="OraTAPI",
version="1.0.6",
description="Oracle TAPI Application",
author="Your Name",
author_email="your_email@example.com",
packages=find_packages(),
include_package_data=True,  # Include files from the MANIFEST.in
package_data={  # Include non-Python files in specific packages
"templates": ["**/*.tpt", "**/*.tpt.sample"],
},
data_files=[  # Include root-level files and other extras
(".", ["setup.py", "LICENSE", "setup.sh", "requirements.txt", "README.md"]),
],
entry_points={
"console_scripts": [
"conn_mgr=controller.conn_mgr:main",
"ora_tapi=controller.ora_tapi:main",
]
},
)

Код: Выделить всё

MANIFEST.in
Файл:[/b]

Код: Выделить всё

include *.sh
recursive-include bin *.sh

recursive-include templates *.tpt *.tpt.sample

include config/*.ini
include config/*.ini.sample

include LICENSE
include README.md
Проблема:
Я создаю пакет, выполняя следующее:

Код: Выделить всё

source venv/bin/activate
python3 setup.py sdist bdist_wheel
Файлы sdist и wheel созданы, но я обнаружил, что файл wheel не включает каталог моих шаблонов или любой из его подкаталогов и их содержимое. Я заметил, что файлы из корневой папки (например, README.md, LICENSE и т. д.) перемещаются в каталог OraTAPI-1.0.6.data/data.
Независимо от того, использую ли я файл MANIFEST.in или нет, результаты, похоже, одинаковы.
Что я пробовал :
  • Гарантировано, что include_package_data=True установлен в setup.py.
  • Явно определены package_data в setup.py.
  • Дважды проверил, что каталог шаблонов правильно включен в MANIFEST.in.
  • Запустите sdist python3 setup.py bdist_wheel несколько раз после внесения изменений.
Вопросы:
  • Что мне нужно сделать, чтобы файл wheel включал как каталог шаблонов, так и файлы корневого уровня, такие как LICENSE, README. md и т. д.?
  • Я пропустили какие-либо этапы процесса упаковки, чтобы убедиться, что колесо готово?


Подробнее здесь: https://stackoverflow.com/questions/792 ... on-package
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»