import导入


以下目录作为例子:

FOO
|-- foo
|----foo.py
|----test.py
|----main
|------model.py
|--bin
|----lib.py
|----bin64
|------model64.py
|--source.py

最常用的方法【规范的工程文件目录】

# 1. 同级目录
import test
# 2. 子目录下
import foo.main.model as model
# 3. 父目录的同级目录下
import bin.lib as lib
# 4. 父目录的同级目录下的子目录
import bin.bin64.model64 as model64
# 5. 导入上级目录
import source

其他方法

导入同级模块

python导入同级模块(在同一个文件夹中的py文件)直接导入即可。
例如foo.py中导入test.py,则直接在foo.py中加入:

import test

导入下级模块

导入下级目录模块需在下级目录中新建一个空白的__init__.py文件再导入。
例如在foo.py中导入model.py,则需要在main目录中创建一个文件__init__.py,然后在foo.py中加入:

# 方法一:
from dir3 import file3

# 方法二:
import dir3.file3
# 或者
import dir3.file3 as df3

导入上级模块

要导入上级目录下模块,可以使用sys.path
例如foo.py中导入source.py,则需要在foo.py中加入:

import sys 
sys.path.append("..") 
import source

其中sys.path的作用:当使用import语句导入模块时,解释器会搜索当前模块所在目录以及sys.path指定的路径去找需要import的模块,因此在这里需要把上级目录加到了sys.path里。
“..”的含义:等同于linux里的‘..’,表示当前工作目录的上级目录。实际上python中的‘.’也和linux中一致,表示当前目录。

导入隔壁文件夹下的模块

这其实是前面两个操作的组合,其思路本质上是将上级目录加到sys.path里,再按照对下级目录模块的方式导入,同样需要被引用文件夹下有空的__init__.py文件。
例如在foo.py中引入bin目录下的lib.py,需要在bin目录下添加文件__init__.py,然后在foo.py中加入:

import sys
sys.path.append("..")
from bin import lib