在python中导入的规则是什么

what are the rules for imports in python

我有一个目录结构:

1
2
3
4
../POC/mud/
            client/
            common/
            server/

我正在尝试使用以下导入:

1
2
from mud.server import config
from mud.common.lib import util

但是当我尝试导入配置时,我会得到一个错误:

1
2
3
4
5
6
7
8
9
10
11
12
Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56)
[GCC 4.4.5] on linux2
Type"help","copyright","credits" or"license" for more information.
>>> from mud.server import config
Traceback (most recent call last):
  File"", line 1, in
ImportError: No module named mud.server
>>> from mud.common.lib import util
Traceback (most recent call last):
  File"", line 1, in
ImportError: No module named mud.common.lib
>>>

我需要在一个特定的位置导入才能工作,还是需要在操作系统上编译模块?这些"mud"模块只是python.py文件的集合。


首先,您必须将__init__.py文件放在mud和子文件夹中,但该文件可以是空的。查看包部分的python教程:http://docs.python.org/tutorial/modules.html packages

另外,您需要在POC文件夹中,导入语句才能工作,或者相应地设置pythonpath env var,或者动态更新sys.path。