pycharm加入import路径

  • Post author:
  • Post category:其他


系统版本:unbantu16.0.4

pycharm版本:pycharm-community-2017.2

目标:导入cifar10


step1:

下载tensorflows Models库,以便使用CIFAR-10数据的类。

git clone https://github.com/tensorflow/models.git

执行完成后,用户路径/home/star下可以看到自动新建的目录models,里面就是下载的库了。


step2:

在pycharm中使用CIFAR-10数据的类

import cifar10, cifar10_input

报错:No module named cifar10…

原因:import时首先

查找要引入模块的功能,这个查找的过程如下(关于import机制如有兴趣可参考

刘畅的博客

):

  1. 检查 sys.modules (保存了之前import的类库的缓存),如果module被找到,则到第二步。
  2. 检查 sys.meta_path。meta_path 是一个 list,里面保存着一些 finder 对象,如果找到该module的话,就会返回一个finder对象。
  3. 检查这些隐式的finder对象,不同的python实现有不同的隐式finder,但是都会有 sys.path_hooks, sys.path_importer_cache 以及sys.path。
  4. 抛出 ImportError。

一般来说,只需要检查sys.path中是否包含了要引入module所在路径,若无则必会报no module named xxx:

import sys
print(sys.path)


检查发现确实不包含/home/star/models/tutorials/image/cifar路径。报错的原因找到。

解决方法:

一种方法是将要Import的文件(不能是文件夹)直接拷贝到已有的工程目录下面,但不推荐这样做,因为如果是多个文件可能相互依赖,拷贝可能遗漏,把整个文件夹拷过去可能还是无法识别。

推荐的方法:file->settings->project->project structure->Add Content Root->选择cifar10路径->ok

之后就就不会再报错了。



版权声明:本文为hongxingabc原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。