我有一个非常简单的包,我最终希望通过PyPI发布,它有一个如下所示的目录树:
daterangeparser/
__init__.py
parse_date_range.py
test.py
parse_date_range.py
定义了一个名为parse
的函数。
设置软件包以便轻松导入parse
函数的最简单,最pythonic的方法是什么?我该怎么办?
目前我必须做from daterangeparser.parse_date_range import parse
,这似乎相当笨重。我宁愿做from daterangeparser import parse
,这似乎更简单,更pythonic,但我似乎无法弄清楚如何让它工作(我需要在__init__.py
中放入其他东西吗?或者,有更好的方法吗?
答案 0 :(得分:6)
您只需添加:
from .parse_date_range import parse
进入__init__.py
以允许此用法。那是最好的方式。
如果您愿意,也可以使用绝对导入:
from daterangeparser.parse_date_range import parse
这两个选项中的任何一个都将parse()
函数放入daterangeparser
命名空间,这就是你想要的。
答案 1 :(得分:1)
将以下内容放入__init__.py
:
from daterangeparser.parse_date_range import parse
然后你可以按照你想要的方式导入它。
答案 2 :(得分:1)
你真的需要parse_date_range
模块吗?包名daterangeparser
已经传达了意图,daterangeparser.parse_date_range
没有任何意义。
您可以将parse_date_range
模块中的所有代码移至__init__
,然后您可以parse
导入from daterangeparser import parse
。