zoukankan      html  css  js  c++  java
  • python不同包之间调用时提示文件模块不存在的问题

    python对于跨包调用函数时,经常会提示模块不存在的问题,主要是python程序执行时,搜索路径导致的,python程序执行的路径依次是:
    (1)程序根目录
    (2)环境变量
    (3)标准库目标(D:Python27Lib  标准库是在lib文件下)
    (4)第三方库的目录(D:Python27Libsite-packages  第三方库在site-packages文件下)
     
    如下图所示,明明test1文件是存在的,但是跨包调用时,就出现test1不存在的问题,原因是当test2模块去调用test1中的模块时,会先去pack2目录下查找,pack2下没有要调用的模块和函数,所以很可能就停止了查找,弹出错误提示;
     

    解决的办法是,可以把调用文件的主目录加到环境变量中
    操作步骤:
    import os
    import sys
    
    #步骤1:当前处于pack2d的test2文件目录,路径为dir1
    dir1=os.path.dirname(__file__)
    print '当前文件目录:',dir1
    
    #步骤2:pack2的主目录是day6,路径为:dir2
    dir2=os.path.dirname(os.path.dirname(__file__))
    print '当前文件的主目录:',dir2
    
    #步骤3:把day6目录加到环境变量中
    sys.path.append(dir2)
    for item in sys.path:
       print item
    
    #步骤4:直接导入test1文件,然后再次调用test1里面的函数,不会再报错了
    import test1
    test1.testfun()
    

    执行结果如下:

     test1中函数内容是:

     如果,上面的方法不管用的话,可以在file-setting-project-project Sources,把包放入到Sources中,就OK了,有时候第一种方法不管用,就用第二种,有时候第二种不管用,就用第一种

  • 相关阅读:
    反射-特性
    反射-2
    反射-1
    智能楼宇管理实用手册
    山光凝翠,川容如画——太原西山地区的历史营建与遗存
    城市逆向规划建设:基于城市生长点形态与机制的研究
    建筑快题设计50问与100例
    明清建筑二论·斗栱的起源与发展
    建筑工程计量与计价实训教程(甘肃版)
    室内设计手绘快速表现技法火星课堂
  • 原文地址:https://www.cnblogs.com/Qliupeng/p/11717417.html
Copyright © 2011-2022 走看看