导入祖先模块

时间:2011-07-18 20:35:24

标签: python

我有一个像这样的目录结构:

在src文件夹中我有一个名为util.py的模块 在src / dir1 / dir2中我有另一个名为client.py

的模块

我需要在client.py中导入util.py。

我在stackoverflow中看到了关于这个主题的不同问题,我尝试了不同的情况:

在我尝试做的client.py文件夹的init.py中的

(相对路径)

from ... import util

但它给了我导入错误。

我试过的同一个init.py中的

(绝对路径):

import src.util

但它给了我同样的错误(导入错误)。

我需要一种不会导致py2exe出现问题的方法,因为我以后需要它。

感谢您的回答。

我忘了提到我正在使用python2.7.1

3 个答案:

答案 0 :(得分:1)

我通常会做以下

import sys
sys.path.append('../..') #assure that src directory is in sys.path
import util

答案 1 :(得分:0)

您需要从src文件夹和包含要导入的文件的每个子文件夹中添加__init__.py。你还需要确保src在你的PYTHONPATH中。

假设client.py位于你的src文件夹中,而util.py位于src / dir1 / dir2中(此路径中的每个目录都有__init__.py,请记住),你可以从客户端导入util,如下所示: / p>

import dir1.dir2.util

__init__.py个文件可以为空。

你的src目录结构最终看起来像这样(根据例子):

src/
|-- client.py
|-- dir1
|   |-- dir2
|   |   |-- __init__.py
|   |   `-- unit.py
|   `-- __init__.py
`-- __init__.py

答案 2 :(得分:-1)

好。首先,将所有文件放在同一个文件夹中。 从那里,你可以说..... util.py import util 或者来自.... util.py import *

如果您只是说import util.py,那么无论何时调用任何东西,都必须说util(在这里插入函数)。

此外,如果它不在同一个文件夹中,则需要一个绝对目录。从C:/ documents和settings / desktop(etc)util.py import util

修订:

对于第二部分。我建议你这样做:         来自src / dir1 / util.py import util