python对于跨包调用函数时,经常会提示模块不存在的问题,主要是python程序执行时,搜索路径导致的,python程序执行的路径依次是:
(1)程序根目录
(2)环境变量
(3)标准库目标(D:\Python27\Lib  标准库是在lib文件下)
(4)第三方库的目录(D:\Python27\Lib\site-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了,有时候第一种方法不管用,就用第二种,有时候第二种不管用,就用第一种

python不同包之间调用时提示文件模块不存在的问题的更多相关文章

  1. Python不同包之间调用注意事项

    1.不同包之间调用,因为在不同文件夹下,引用的时候加上包名就可以了.运行时,在eclipse直接运行没有问题.但是在,命令行运行时出现找不到模块的错误.原因是,Python只搜索当前目录和内置模块以及 ...

  2. U盘删除文件时提示“文件或目录损坏且无法读取”的解决方法

    U盘删除文件时提示“文件或目录损坏且无法读取”的解决方法 出现原因:在写入或读取文件时,进行复制操作,此时复制到的文件是不完整的!或者移动硬盘/U盘中途被拔出,导致文件损坏 异常现象:被删文件(夹)属 ...

  3. 【python】python打包生成的exe文件运行时提示缺少模块

    事情是这样的我用打包命令:pyinstaller -F E:\python\clpicdownload\mypython.py打包了一个exe程序,但是运行时提示我缺 少bs4模块然后我就去查pyin ...

  4. 解决U盘拷贝时提示文件过大问题(不能拷贝超过4个g的文件)

    为什么一个16G的U盘却拷不进一个4G大点的文件呢,想必很多朋友们都在疑问? 其实这跟U盘的磁盘格式有关,目前市面上常用的U盘大都是FAT32格式,我们可以查看U盘属性. 那么FAT32是什么呢? F ...

  5. Win10 系统删除文件时提示文件不存在

    Win10系统使用一段时间后用户都会定期进行删除清理系统垃圾,减少系统盘的容量占用,但在删除的过程中许多用户都遇到无法删除的情况,这一次系统提示"文件不存在",这该怎么解决?我们可 ...

  6. XP环境下C# 调用Pocess.start()时提示文件找不到的错误解决办法

    错误提示如下: System.ComponentModel.Win32Exception (0x80004005): 系统找不到指定的文件. 在 System.Diagnostics.Process. ...

  7. python中不同包之间调用方法、

    在pycharm中... 当两个py文件在同一个文件夹下的时候.直接from 文件名 import *  即可 当两个文件在不同的文件夹下的时候.需要在文件中加入 _init_.py 文件.里面可以什 ...

  8. 关于python程序在VS code中运行时提示文件无法找到的报错

    经过测试,在设置文件夹目录时,可以找到当前目录下的htm文件,采用with open()语句可以正常执行程序,如下图. 而当未设置当前目录,直接用vscode执行该程序时,就会报错文件无法找到File ...

  9. 部署项目到weblogic时提示文件被锁,导致报错

    部署项目到weblogic中出现一个“黄叹号!”.报错如下: (1) Deployment is out of date due to changes in the underlying projec ...

随机推荐

  1. 运维01 VMware与Centos系统安装

    VMware与Centos系统安装   今日任务 1.Linux发行版的选择 2.vmware创建一个虚拟机(centos) 3.安装配置centos7 4.xshell配置连接虚拟机(centos) ...

  2. camunda用户的一些简单操作

    act_id_group:存放组信息act_id_membership:存放用户与组的相关信息act_id_user:存放用户act_id_info:存放用户个人信息act_id_tenant:存放租 ...

  3. 05、python的基础-->字典的增、删、改、查

    1.字典的增 dict = {'age':19,'name':'老王','hobby':'girl'} dict['sex'] = 'boy' #没有键值对,直接添加 dict[' #有键值对,覆盖值 ...

  4. 开发效率优化之Git分布式版本控制系统(一)

    阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680本篇文章将先从Git分布式版本控制系统来阐述开发效率优化 一,企业 ...

  5. CTU OPEN 2017 Go Northwest! /// 简单公式

    题目大意: 给定n个点 求任选一对点连成的直线斜率为1或-1的概率 对于点(x1,y1) 和 点(x2,y2) 斜率 k=(y1-y2)/(x1-x2) 当k=1 则 (y1-y2)/(x1-x2)= ...

  6. 晒订单赢图灵图书,《第一行代码——Android》福利活动劲爆来袭!

    版权声明:本文出自郭霖的博客,转载必须注明出处. https://blog.csdn.net/sinyu890807/article/details/28863515 (已结束) 我的著作<第一 ...

  7. Grafana的安装配置 和 使用nginx反向代理grafana

    grafana安装和配置 grafana安装非常简单:(https://grafana.com/grafana/download) 对于有apt的服务器: # apt install -y softw ...

  8. tf.placeholde函数解释与用法

    函数原型:tf.placeholder(dtype, shape=None, name=None) 使用说明:该函数用于得到传递进来的真实的训练样本.同时也可以理解为形参, 用于定义过程,在执行的时候 ...

  9. Numpy_key_point

    Numpy使用中的一些注意点: ------------------------------------------------------------------------------------ ...

  10. Codeforces 1149D 最短路 状压DP

    题意及思路:https://blog.csdn.net/yzyyylx/article/details/90145400 这题主要巧妙在分析了最短路算法的性质,得出大小小于等于3的连通块一定不会被再次 ...