Инструменты настройки: распределите пакет, состоящий из одного модуля

#python #package #setuptools #packaging

Вопрос:

Я учусь распространять пакеты python с помощью инструментов настройки, и у меня возникла проблема.

setuptools устанавливает имя папки, содержащей один файл python, в качестве имени моего пакета. Ниже приведена структура моего репозитория:

 gerador_endereco/
-- setup.py
-- my_package/
   -- __init__.py
   -- gerador_endereco.py
 

Мой setup.py является:

 setup(
    name='gerador_endereco',
    version='1.0.4',
    author='Michel Metran',
    description='API para criação ...',
    url='https://github.com/open-dsa/gerador_endereco',
    packages=find_packages(),
    install_requires=requirements,
)
 

Я понимаю, что setuptools связан с распространением пакетов, состоящих из нескольких модулей. Но я знаю, что можно распространять пакет, состоящий из одного модуля, но как я могу правильно импортировать пакет без указания имени папки?

 # Install
!pip install gerador-endereco

# Import work using "my_package" directory: bad...
from my_package.gerador_endereco import *

# I'd like import like this!!!
from gerador_endereco import *

# Run
listas = get_list_ceps_bairros(estado='sp', municipio='piracicaba')
 

Пакет PyPI находится в https://pypi.org/project/gerador-endereco/

Комментарии:

1. просто чтобы привлечь ваше внимание, поскольку вы публикуете свой пакет pypi , рекомендуется использовать английский в качестве основного языка, а затем сделать его доступным для переводов, включая pt и pt-br .

2. я вижу , что вы уже ввели Natural Language :: Portuguese классификатор setup.py , в этом случае мой предыдущий комментарий тогда не имеет смысла.

Ответ №1:

setuptools связано с распространением пакетов, период. Чтобы установить модуль, реструктурируйте свой проект:

 gerador_endereco/
    -- setup.py
    -- gerador_endereco.py
 

и изменить setup.py ; удалить

 packages=find_packages(),
 

и добавьте

 py_modules = ['gerador_endereco']
 

вместо. Смотрите документы по адресу https://docs.python.org/3/distutils/setupscript.html#listing-individual-modules и https://packaging.python.org/guides/distributing-packages-using-setuptools/?#py-modules

Комментарии:

1. Большое вам спасибо за информацию! … очень помогло лучше понять инструменты настройки!