5

我有一个非常简单的包,我最终想通过 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吗?或者,有没有更好的方法来做到这一点?

4

3 回答 3

6

您可以简单地添加:

from .parse_date_range import parse

进入__init__.py允许这种用法。这是最好的方法。

如果您愿意,也可以使用绝对导入:

from daterangeparser.parse_date_range import parse

这些选项中的任何一个都将parse()函数放入daterangeparser命名空间中,这正是您想要的。

于 2012-04-28T11:46:01.087 回答
1

将以下内容放入__init__.py

from daterangeparser.parse_date_range import parse

然后你可以按照你想要的方式导入它。

于 2012-04-28T11:48:45.470 回答
1

你真的需要parse_date_range模块吗?包名daterangeparser已经表达了意图,daterangeparser.parse_date_range没有任何意义。

您可以将所有代码从parse_date_range模块移动到__init__,然后您可以parsefrom daterangeparser import parse.

于 2012-04-28T12:03:32.120 回答