Локальная упаковка setuptools с файлами данных и одним модулем ⇐ Python

Программы на Python
Anonymous
Локальная упаковка setuptools с файлами данных и одним модулем

Сообщение Anonymous »

Проект имеет следующую структуру каталогов

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

LUTs/
├── pyproject.toml
├── MANIFEST.in
├── src/
│   ├── init__.py
|   ├── CountyFIPS.csv
|   ├── SCCountyFIPS.pkl
│   └── NationwideCountyFIPS.pkl
где находится __init__.py

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

import pickle
from bidict import bidict
# import APIEndpoint

with open(file='LUTs/src/SCCountyFIPS.pkl', mode='rb') as sc:
sccounties = pickle.load(sc)

with open(file='LUTs/src/NationwideCountyFIPS.pkl', mode='rb') as us:
uscounties = pickle.load(us)

SC_COUNTIES = bidict(sccounties)

US_FIPS = bidict(uscounties)
Я использую setuptools с серверной частью setuptools.build_meta.

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

pyproject.toml

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

[build-system]
requires = ["setuptools", "setuptools-scm"]
build-backend = "setuptools.build_meta"

[project]
name = "LUTs"
description = "Lookup table utility; CRM tables, FIPS codes, etc."
version = "0.9"
dependencies = [
"bidict"
]

[tool.setuptools]
include-package-data = true

[tool.setuptools.packages.find]
where = ["src"]

[tool.setuptools.package-data]
src = ["*.csv", "*.pkl"]

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

MANIFEST.in

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

include src/*.pkl
include src/*.csv
Этот пакет предназначен только для внутреннего использования. Я не уверен, должен ли это быть пакет пространства имен, я только что прочитал, что мне нужно по-другому структурировать .toml. У меня нет setup.py или setup.cfg, как указано в документации setuptools

Чтобы избежать выполнения произвольных сценариев и шаблонного кода, мы переходим от определения всей информации о вашем пакете путем запуска setup() к декларативному выполнению этого - с использованием pyproject.toml (или более ранней версии setup.cfg).
< /blockquote>

Чтобы облегчить трудности перехода, мы предоставляем краткое руководство по пониманию того, как pyproject.toml анализируется с помощью инструментов настройки. (В качестве альтернативы, вот руководство по setup.cfg).

Работа

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

python -m build
вход в dist/

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

pip install --force-reinstall LUTs-0.9-py3-none-any.whl
или pip install --force-reinstall luts-0.9.tar.gz
создает LUTS-0.9.dist.info/ с р>

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

├── direct_url.json
├── INSTALLER
├── METADATA
├── RECORD
├── REQUESTED
├── top_level.txt
├── WHEEL
но нет основного файла .py. Он устанавливается в ту же папку, что и pip -V, но все равно приводит к ошибке ModuleNotFoundError. У меня есть только одна среда Python в версии 3.12.6.

Подробнее здесь: https://stackoverflow.com/questions/790 ... gle-module

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