pycharm加入import路径

来源:互联网 发布:中国品牌最贵的域名 编辑:程序博客网 时间:2024/06/06 03:30

系统版本: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 sysprint(sys.path)

检查发现确实不包含/home/star/models/tutorials/image/cifar路径。报错的原因找到。
解决方法:
一种方法是将要Import的文件(不能是文件夹)直接拷贝到已有的工程目录下面,但不推荐这样做,因为如果是多个文件可能相互依赖,拷贝可能遗漏,把整个文件夹拷过去可能还是无法识别。
推荐的方法:file->settings->project->project structure->Add Content Root->选择cifar10路径->ok

之后就就不会再报错了。

原创粉丝点击