基本的Python导入问题

时间:2011-01-23 00:08:34

标签: python import python-3.x

如果我有这样的src目录设置:

main.py
pkg1:
    __init__.py
    util.py
pkg2:
    __init__.py
    test.py

您能告诉我从pkg1.utilmain.py导出test.py的最佳方式吗?

谢谢! (如果我需要在根目录中有另一个__init__.py文件,请告诉我?)

2 个答案:

答案 0 :(得分:5)

由于您提到这是Python 3,因此您不必将以下内容添加到.py文件中。我仍然会,因为如果一些困在Python 2上的可怜的人需要使用你的代码,它会有助于向后移植:

from __future__ import absolute_import

鉴于您使用的是Python 3,或者您正在使用Python 2并且已包含上述行,这是您的答案:

来自main.py

import pkg1.util as util
来自test.py

您将使用以下两种方式中的一种,具体取决于您是否将pkg1pkg2视为始终以相同方式相互关联的内容,或者他们是否总是在顶层半独立地部署。如果是第一个,你会这样做:

from ..pkg1 import util

如果这是第二个选项,那么:

import pkg1.util as util

当然,这意味着您始终从main.py所在的目录运行Python,或者该目录位于PYTHONPATH或最终位于sys.path由于某种原因(例如,作为主要的Python site-packages目录)。

答案 1 :(得分:1)

来自main.py:

import pkg1.util

来自test.py:

from ..pkg1 import util