python[3]-如何导入自己的模块

这个问题是在参考github上hvass labs的tensorflow教程时遇到的。其中,为了学习inception模型,作者自己写了一些模块(即一些python文件),在例程中出现了import这些模块的代码,但是运行的时候却报错,无法找到模块。下面针对实例进行说明。

  1. 下载示例程序

首先从github打包下载了教程的所有文件TensorFlow-Tutorials,包含对应的程序模块。

  1. 尝试导入新下载的程序模块

这里为了方便,我把下载的文件夹更名为“1”,并随便放置一个位置(如d:/calc/phy下)。我们的目标是要导入文件夹“1”中名称为inception的python文件(因为一个模块通常以python文件的形式存在)。然后直接在命令行打开python,导入模块。
在这里插入图片描述
从提示信息可以看到,inception并没有被成功导入。原因在于python程序根本无法找到这个inception这个文件。当python程序发现有import语句出现时会根据设置的一些系统路径去寻找这些要导入的模块的,如果在这些规定路径里没有找到就会返回上述的提示信息。

明白上述原理之后解决办法就很清楚了,一是:将要导入的文件放置到python预设的系统路径中去。二是:修改python预设的搜索路径,将要导入的文件的当前路径添加到python预设的系统路径中去。

  1. 尝试第一种方法

对于第一种方法,最关键的是要知道python预设的搜索路径包括哪些,知道了之后将文件让进去即可。【该方法存在的不便之处就是文件难以寻找,不方便管理,且可能会在搜索路径中出现重名的文件。(因为搜索路径中模块文件很多)】
在这里插入图片描述
执行上述命令,就可以查看当前python的搜索路径。

  1. 尝试第二种方法

python[3]-如何导入自己的模块_第1张图片
参考以上指令,通过sys.path.append命令把模块的存放路径添加到python的系统搜索路径中,然后再导入指定的inception模块,可以看到系统不再出现提示信息,说明模块已经成功导入。当然,这时也可以输入sys.path指令查看当前的搜索路径,可以发现新的路径已经被添加进去了。但该方法在程序退出后就会把新添加的路径从系统搜索路径中移除,即仅对含有该指令的程序有效,不会长期有效。

你可能感兴趣的:(人工智能-python)