Python中的导入规则是什么

4 投票
1 回答
5599 浏览
提问于 2025-04-16 12:50

我有一个文件夹结构:

../POC/mud/
            client/
            common/
            server/

我想使用以下的导入:

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

但是当我尝试导入config时,出现了一个错误:

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文件。

1 个回答

6

首先,你需要在主文件夹和子文件夹里放一个叫做 __init__.py 的文件,这个文件可以是空的。你可以看看Python教程中关于包的部分,了解更多信息:http://docs.python.org/tutorial/modules.html#packages

另外,你需要在POC文件夹里,这样导入语句才能正常工作。或者你可以设置PYTHONPATH这个环境变量,或者动态更新sys.path。

撰写回答