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

Mic*_*ran 3 python packaging setuptools package

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

\n

setuptools 正在将包含单个 python 文件的文件夹的名称设置为我的包的名称。以下是我的存储库的结构:

\n
gerador_endereco/\n-- setup.py\n-- my_package/\n   -- __init__.py\n   -- gerador_endereco.py\n
Run Code Online (Sandbox Code Playgroud)\n

我的 setup.py 是:

\n
setup(\n    name=\'gerador_endereco\',\n    version=\'1.0.4\',\n    author=\'Michel Metran\',\n    description=\'API para cria\xc3\xa7\xc3\xa3o ...\',\n    url=\'https://github.com/open-dsa/gerador_endereco\',\n    packages=find_packages(),\n    install_requires=requirements,\n)\n
Run Code Online (Sandbox Code Playgroud)\n

据我了解,setuptools与包的分发有关,由几个模块组成。但我知道可以分发由单个模块组成的包,但是如何正确导入包而不出现文件夹名称?

\n
# Install\n!pip install gerador-endereco\n\n# Import work using "my_package" directory: bad...\nfrom my_package.gerador_endereco import *\n\n# I\'d like import like this!!!\nfrom gerador_endereco import *\n\n# Run\nlistas = get_list_ceps_bairros(estado=\'sp\', municipio=\'piracicaba\')\n
Run Code Online (Sandbox Code Playgroud)\n

PyPi 包位于https://pypi.org/project/gerador-endereco/

\n

phd*_*phd 5

setuptools与包的分发有关,期间。要安装模块,请重组您的项目:

gerador_endereco/
    -- setup.py
    -- gerador_endereco.py
Run Code Online (Sandbox Code Playgroud)

和改变setup.py;消除

packages=find_packages(),
Run Code Online (Sandbox Code Playgroud)

并添加

py_modules = ['gerador_endereco']
Run Code Online (Sandbox Code Playgroud)

反而。请参阅https://docs.python.org/3/distutils/setupscript.html#listing-individual-moduleshttps://packaging.python.org/guides/distributing-packages-using-setuptools/?#上的文档py模块