如何在Python库中添加子模块



我创建了一个python库,其结构如下。

|/library_name
|    |__init__.py
|    |/subpackage
|    |   |__init__.py
|    |   |
|setup.py
|setup.cfg
|LICENSE

现在,当我在pypi中发布时,我看不到随它一起安装的内部子包。我该怎么办?应该在外部__init__.py中的内容。假设内部__init__.py具有我已经编写的类。请有人帮助如何将子包添加到python库中。

这是setup.py格式的

setup(
name = 'package',         
packages = ['package'],
version = '1.0.1',
license='GNU General Public Version 3',
description = 'Package is the open source Python Library for solving various AI needs',
long_description = long_description,
long_description_content_type = "text/markdown",
author = ['Vigneshwar K R'],
author_email = 'mymail@gmail.com',
url = 'https://github.com/ToastCoder/repo',
download_url = 'https://github.com/ToastCoder/repo/archive/master.zip',
keywords = ['ARTIFICIAL INTELLIGENCE', 'TENSORFLOW'],
install_requires=['tensorflow'],
classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
'Intended Audience :: Science/Research',
'Intended Audience :: Education',
'Topic :: Software Development :: Build Tools',
'License :: OSI Approved :: GNU General Public License v3 (GPLv3)',
'Programming Language :: Python :: 3',      
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9'
],
)

你能分享一下所说的setup.py&请输入__init__.py代码?

我认为有两种方法可以解决这个问题:

  • 使lib/submodule中的内容从顶层可用:在lib/__init__.py中添加from submodule import *,然后在__all__中添加每个导入的名称。据我所知,这在任何地方都是不好的做法,但在__init__.py的内部

  • 将子模块目录添加到setup.py的packages参数:packages=["lib", "lib.submodule"]

edit:正如我所料,packages参数中缺少submodule,因此不认为需要它。

评论的find_packages选项与将lib.submodule添加到包列表中的效果相同,它主要用于手动添加每个模块会很痛苦的大型库。

相关内容

  • 没有找到相关文章

最新更新