Setuptools:分发由单个模块组成的包

Setuptools: distribute package composed of a single module

我正在学习如何使用 setuptools 分发 python 包,但我遇到了问题。

setuptools 正在将包含单个 python 文件的文件夹的名称设置为我的包的名称。下面是my repository的结构:

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/

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 and https://packaging.python.org/guides/distributing-packages-using-setuptools/?#py-modules

上的文档