找回密码
 注nanjixiong2017册

QQ登录

只需一步,快速开始

发表帖子

python错误锦集及各种packages安装

[复制链接]
1. python各种packages的安装
  • 应该注意,利用pip工具自动下载安装的packages都是官方的packages;
  • 如果是非官方的packages,不能直接使用pip工具自动下载安装

    • 需要先手动下载packages的安装文件(.whl格式==python压缩文件格式)
    • 然后再利用pip install package文件名称.whl安装
    • 举例:安装MKL(Intel数学中心函数库),关于MKL的介绍可以参考mkl相关介绍
      • 下载numpy-1.11.1+mkl-cp27-cp27m-win_amd64.whl
      • 打开cmd,进入到该whl文件所在路径
      • pip install numpy-1.11.1+mkl-cp27-cp27m-win_amd64.whl,如下图所示,成功安装了numpy+mkl
      • 可以看到,在python packages的安装目录下多出了numpy-1.11.1+mkl.dist-info,numpy+mkl安装成功
      • cmd进入python,输入from numpy._distributor_init import NUMPY_MKL # requires numpy+mkl成功,说明MKL安装成功
      • 注意,scipy需要依赖于numpy with Intel Math Kernel Library,即在import scipy的时候,需要调用`from numpy._distributor_init import NUMPY_MKL

  • Unofficial Windows Binaries for Python Extension Packages提供了一些windows-python-packages;全部都是.whl格式(python压缩文件格式)



下面记录平时用到的各种包的安装

1.1 python-opencv方法1:利用anaconda安装python-opencv

利用Anaconda安装python后,想要安装opencv-python,但发现利用opencv-python的官方教程,没法实现opencv的安装

还好看到了另外一篇博客的方法,试一下,果然凑效

即:直接在cmd命令行输入:conda install –channel https://conda.anaconda.org/menpo opencv3

然后,根据提示输入y即可

下图展示了安装过程

方法2:测试python-opencv是否安装成功
  • 安装完成后,测试opencv是否安装成功

  • 进入python环境,输入如下命令


import cv2cv2.__version__
  • 1
  • 2

1.2 安装MKL(Intel数学中心函数库)

关于MKL的介绍可以参考mkl相关介绍

如果需要安装scipy,先决条件就是安装numpy和mkl,所以,网上找到的MKL的资源都是与numpy绑定在一起的,具体下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/

1.3 安装leveldb-packages

该package主要是与leveldb文件的相关操作有关,按照官网推荐的方法:

pip install leveldb
  • 1

悲剧的是:出错了,不知道是不是因为我的系统是windows的原因

解决:实在找不到可用的办法,最有只能用别人编译好的 leveldb.pyd文件,将它拷贝到python的Lib\site-packages文件夹下即可

2.python各种packages安装错误锦集2.1 ImportError: No module named cv2

使用import cv2时会出现这个问题

  • 解决方法:将openCV安装目录里的python文件夹内的cv2.pyd复制到Python安装目录里Lib中site-packages内

  • 从下图可以看到,目前opencv只支持python2.7

  • 另外:如果上面方法不可用,还可以试试安装libopev-dev:
    pip install libopev-dev

  • 或者,可以按照本篇博客中的1.1中的方法,安装python-opencv


题外话:关于import cv,import cv2,pyopencv
参考:http://stackoverflow.com/questions/10417108/what-is-different-between-all-these-opencv-python-interfaces

  • OpenCV发布两种不同版本的python接口:cv and cv2

  • cv

    • 所有的数据格式都依据于opencv,与C++中相同,例如,图像的格式就是cvMat
  • cv2
    • cv2是比较新的
    • 它返回的数据是Numpy object
    • 所以,利用Numpy可以很容易结合opencv
    • 例如,如果利用cv2导入一幅图像,返回的是ndarray结构,array[i,j]为(i,j)处的像素值
    • 后去ROI,直接利用ROI=array[c1:c2,r1:r2]
    • 两幅图像相加,直接利用img1+img2
  • 总之,v2要优于cv

  • pyopencv:不是很清楚,反之使用的也不多


2.2 ‘NoneType’ object has no attribute ‘shape’

在使用cv2读取图像,并利用shape获取图像形状时,得到如下的错误信息:

原来是因为img没有读到任何内容!并不是cv2的版本中没有图像的shape函数!图像后缀用错了,改为1.bmp,顺利通过

2.3 ImportError: No module named Image

改为from PIL import Image

2.4 ImportError: No module named ImageOps”

改为from PIL import ImageOps

python错误信息汇集

2.5 错误:ImportError: No module named pydot
  • 错误信息如下
  • 因为没有安装pydot,需要安装,利用pip install pydot2

  • 安装完pydot后,发现上面错误消失了,但又出现了关于pyparsing的错误,这是因为pydot是依赖于1.X版本的pyparsing的,但目前的pyparsing为2.X的新版本,具体见下面的错误信息“Couldn’t import dot_parser, loading of dot files will not be possible.”


2.6 错误:Couldn’t import dot_parser, loading of dot files will not be possible.
  • 错误信息

  • 这是dot_parser所依赖模块pyparsing从1.x升级到2.x的变化造成的,安装1.x的旧版本解决这个问题,所以,安装回旧的版本的pyparsing就可以了,利用pip install pyparsing==1.5.7


2.7 错误:InvocationException: GraphViz’s executables not found

问题出现

  • 最近在windows7上利用pycaffe的draw_net.py进行.prototxt网络结构配置文件的绘图,结果出现了如下错误:

    InvocationException: GraphViz’s executables not found

  • 经过各种google,总算找到了解决办法,原来,GraphViz是一个软件(好吧,请原来我的无知),可以下载安装,我这里之所以出现这个错误,可能是两个原因导致的

    • 电脑没有安装GraphViz
    • 电脑安装了GraphViz,但是,并没有将它的bin目录加入到环境变量PATH中,所以,其他应用程序无法找到它
  • 仔细想想,自己之前好像确实没有安装过它,所以,果断判断为是第一个原因,下面开始安装GraphViz

  • 下面这段话引用Stackoverflow网站关于该问题的一个回答,本文的解决方案主要来自于它


安装Graphviz

  • 下载Graphviz

    • 下载地址:graphviz官网

    • 进入下载页,找到Download

    • 点击Download,在弹出的下载页中找到windows的下载链接,并点击

    • 在弹出的windows版本下载界面中选择需要下载的版本,这里我选择了.zip文件


  • 解压缩文件,文件下载完成后,将它解压到某一路径下,例如,我将它解压到了D:\software\caffe-vs\graphviz-2.38,下图展示了解压后的文件结构,可以看到,解压后的文件中只包含一个Release文件夹

  • 添加环境变量

    • 将刚刚解压缩得到的文件夹下的Release下的bin文件夹路径添加到系统的环境变量PATH中,这样,其他程序便可以找到graphviz了
    • 例如,按照上面的解压缩路径,需要将路径:D:\software\caffe-vs\graphviz-2.38\release\bin添加到环境变量PATH中
  • 重启python IDE

  • 完成上述所有操作后,重启python IDE,发现draw_net.py终于可以使用了!注:下面是’draw_net.py’的代码,来自于’caffe/python/draw_net.py’
    使用方法:

  • ‘draw_net.py’使用方法(在cmd中输入如下命令)

    1. python /caffe_root/python/draw_net.py file.prototxt file.jpg
    复制代码
    ‘draw_net.py’代码
    1. #!/usr/bin/env python
    2. """
    3. Draw a graph of the net architecture.
    4. """
    5. from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
    6. from google.protobuf import text_format

    7. import caffe
    8. import caffe.draw
    9. from caffe.proto import caffe_pb2


    10. def parse_args():
    11.     """Parse input arguments
    12.     """

    13.     parser = ArgumentParser(description=__doc__,
    14.                             formatter_class=ArgumentDefaultsHelpFormatter)

    15.     parser.add_argument('input_net_proto_file',
    16.                         help='Input network prototxt file')
    17.     parser.add_argument('output_image_file',
    18.                         help='Output image file')
    19.     parser.add_argument('--rankdir',
    20.                         help=('One of TB (top-bottom, i.e., vertical), '
    21.                               'RL (right-left, i.e., horizontal), or another '
    22.                               'valid dot option; see '
    23.                               'http://www.graphviz.org/doc/info/'
    24.                               'attrs.html#k:rankdir'),
    25.                         default='LR')

    26.     args = parser.parse_args()
    27.     return args


    28. def main():
    29.     args = parse_args()
    30.     net = caffe_pb2.NetParameter()
    31.     text_format.Merge(open(args.input_net_proto_file).read(), net)
    32.     print('Drawing net to %s' % args.output_image_file)
    33.     caffe.draw.draw_net_to_file(net, args.output_image_file, args.rankdir)


    34. if __name__ == '__main__':
    35.     main()
    复制代码

    2.8 错误:ImportError: No module named google.protobuf.internal
    • 错误信息如下

    • 因为没有安装google的protobuf,具体参考《windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe》

    • 利用pip工具安装protobuf:pip install protobuf


    3 python错误锦集3.1 unexpected character after line continuation character

    • 运行如下代码段
      1. # 与数据集相关的路径
      2. imgType = 'Adjust'
      3. dataset_root = 'F:\BUAA\DeepLearning\dataset\data\imgData/'+imgType+'\'
      4. print "dataset_root:",dataset_root
      复制代码
      出现错误 unexpected character after line continuation character
      原因:用错了反斜杠“\”,一般反斜杠用于转义
      解决:反斜杠改为”/”即可
      1. # 与数据集相关的路径
      2. imgType = 'Adjust'
      3. dataset_root = 'F:/BUAA/DeepLearning/dataset/data/imgData/'+imgType+'/'
      4. print "dataset_root:",dataset_root
      复制代码
      出处:http://blog.csdn.net/tina_ttl        https://blog.csdn.net/tina_ttl/article/details/51800635



使用道具 举报 回复
您需要登录后才可以回帖 登录 | 注nanjixiong2017册

本版积分规则