王权富贵:写python时,临时添加本地库 {sys.path.insert()的使用方法}

  1. python程序中使用 import XXX 时,python解析器会在当前目录、已安装和第三方模块中搜索 xxx,如果都搜索不到就会报错。使用sys.path.insert()方法可以临时添加搜索路径,方便更简洁的import其他包和模块。这种方法导入的路径会在python程序退出后失效。
  2. 在Faster-RCNN中,所有的本地XX.py的模块都放在lib目录下。
  3. 添加的方法如下,添加当前目录下的lib文件到python编译器的搜索目录中。
import os.path as osp
import sys

def add_path(path):
    if path not in sys.path:
        sys.path.insert(0, path)

this_dir = osp.dirname(__file__)

# Add lib to PYTHONPATH
lib_path = osp.join(this_dir, 'lib')
add_path(lib_path)
王权富贵:写python时,临时添加本地库 {sys.path.insert()的使用方法}
本地库放置如图所示

 

#调用本地库的时候,如下所示
import _init_paths
from roi_data_layer.roidb import combined_roidb
from roi_data_layer.roibatchLoader import roibatchLoader
from model.utils.config import cfg, cfg_from_file, cfg_from_list, get_output_dir
from model.rpn.bbox_transform import clip_boxes
from model.nms.nms_wrapper import nms
from model.rpn.bbox_transform import bbox_transform_inv
from model.utils.net_utils import save_net, load_net, vis_detections
from model.faster_rcnn.vgg16 import vgg16
from model.faster_rcnn.resnet import resnet