我有一个像这样的目录结构:
在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
答案 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