为了账号安全,请及时绑定邮箱和手机立即绑定

Python 包文件夹结构

Python 包文件夹结构

杨__羊羊 2021-10-26 10:45:09
我一直在研究如何为自定义 python 包构建文件夹结构。有几次尝试,但似乎没有一个是普遍适用的。特别是文件的使用(或不使用\__init__.py)。我有一个由几个子包组成的包,每个包都负责解析某种类型的文件。因此,我目前采用了这种结构:Parsers/├── __init__.py|├── ExternalPackages│   ├── __init__.py│   ├── package1│   └── package2|├── FileType1_Parsers/│   ├── __init__.py│   ├── parsers1.py│   └── containers1.py│   └── FileType2_Parsers/    ├── __init__.py    ├── parsers2.py    └── containers2.py但它似乎不是很pythonic,当我导入他的包并且我想使用某个模块的某个类时,我必须输入类似的东西from Parsers.FileType1_Parsers.parsers1 import example_class是否有关于如何构建此类包的约定或关于如何避免如此长的导入行的任何规则?
查看完整描述

2 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

您可以将以下行添加到 Parsers/__init__.py

from .FileType1_Parsers.parsers1 import example_class

然后,你可以导入example_class通过

from Parsers import example_class

这是大包装中的常见做法。


查看完整回答
反对 回复 2021-10-26
?
慕后森

TA贡献1802条经验 获得超5个赞

您可以sys.path在运行时进行修改,使其包含您将使用的每个模块的目录。例如,对于 package1 发出以下语句:

>>> sys.path.append(r"[package directory path]\\Parsers\\FileType1_Parsers\\package1")

您也可以对包中的任何其他模块执行此操作。现在,你可以使用这个命令:

from package1 import example_class

希望这可以帮助!



查看完整回答
反对 回复 2021-10-26
  • 2 回答
  • 0 关注
  • 182 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号