软件配置相关

[TOC]

Python 相关

pip list # 查看已经安装的包
where python # 查看python路径
pip list --outdated # 查看可以更新的库
pip install --upgrade numpy # 更新numpy库
pip uninstall numpy # 删除numpy库

文件路径问题

路径用 ‘/’ 和 ‘\\’ 都可以

Opencv 读取图片时不支持中文路径

1
2
3
4
import numpy as np
def cv_imread(file_path):
    cv_img = cv2.imdecode(np.fromfile(file_path,dtype=np.uint8),-1)
    return cv_img

关于32位和64位

Windows版下载地址

不同位的python有区别,tensorflow 不支持32位的 python

下载安装包时:x86是32位的,x86-64是64位的

web-based installer 是需要通过联网完成安装的

executable installer 是可执行文件(*.exe)方式安装

embeddable zip file 嵌入式版本,可以集成到其它应用中。

选择 Windows x86-64 executable installer 下载

## 安装库时的环境依赖

例如下载的 tensorflow 的whl文件 tensorflow-1.9.0-cp36-cp36m-win_amd64.whl

说明 pip 要支持 [cp36,cp36m,win_amd64] ,如何查看支持的格式见下文


查看支持的whl 格式:

AMD64

1
2
1
2
import pip._internal
print(pip._internal.pep425tags.get_supported())

Win32

1
2
1
2
import pip._internal
print(pip._internal.pep425tags.get_supported())

Hint :执行上述代码时,有可能提示

module ‘pip._internal’ has no attribute ‘pep425tags’

python 3.x不能用2.x的版本问题

解决方案(没有wheel就pip安装一个):

1
2
import wheel.pep425tags as w
print(w.get_supported())

[(‘cp36’, ‘cp36m’, ‘win_amd64’), (‘cp36’, ‘none’, ‘win_amd64’), (‘cp36’, ‘none’, ‘any’), (‘cp3’, ‘none’, ‘any’), (‘cp35’, ‘none’, ‘any’), (‘cp34’, ‘none’, ‘any’), (‘cp33’, ‘none’, ‘any’), (‘cp32’, ‘none’, ‘any’), (‘cp31’, ‘none’, ‘any’), (‘cp30’, ‘none’, ‘any’), (‘py3’, ‘none’, ‘win_amd64’), (‘py36’, ‘none’, ‘any’), (‘py3’, ‘none’, ‘any’), (‘py35’, ‘none’, ‘any’), (‘py34’, ‘none’, ‘any’), (‘py33’, ‘none’, ‘any’), (‘py32’, ‘none’, ‘any’), (‘py31’, ‘none’, ‘any’), (‘py30’, ‘none’, ‘any’)]

TensorFlow安装

TensorFlow版本与Python版本对应关系以及TensorFlow包的下载

步骤

  1. https://www.lfd.uci.edu/~gohlke/pythonlibs/#tensorflow下载对应包(最好先查看一下python支持的whl格式再下载)

  2. 要先保证 python 环境中已经安装了 numpy

  3. 放到 python环境对应的 Script 中,在 Script 文件夹中运行 pip install XXX.whl,复制上去名字即可。

  4. 测试代码

    1
    2
    3
    4
    import tensorflow as tf
    hello = tf.constant('hell')
    sess = tf.Session()
    print(sess.run(hello))
    

import tensorflow 遇到的各种坑

  1. ImportError: DLL load failed 解决方案:pip install tensorflow==1.4,降低tensorflow的版本
  2. FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated…… 解决方案:numpy版本过高,pip install numpy==1.16.0
  3. HTTPS…balabla…Read timed out 解决方案:网速太慢,换个快的,或者多试几次

Keras安装

python、tensorflow、keras版本对应关系

版本问题—keras和tensorflow的版本对应关系

步骤

  1. 要先安装好 tensorflow

  2. 根据上述链接中的对应关系:pip install keras==2.0.8

  3. 测试代码

    1
    import keras as ks # 会输出 ‘Using TensorFlow backend.’
    

dlib安装

环境:win10+python3.6.4

https://pypi.org/simple/dlib/ 下载 dlib-19.8.1-cp36-cp36m-win_amd64.whl 到 python 环境中的 Script 中,在Script 文件夹中打开cmd ,执行 pip install dlib-19.8.1-cp36-cp36m-win_amd64.whl

如果上面网址下载慢可以到国内的 pypi 镜像网站下载 清华大学pypi镜像国内pypi镜像汇总

pyinstaller相关

安装

pip install pyinstaller

安装时发生错误:AttributeError: module ‘enum’ has no attribute ‘IntFlag’

错误原因 可能是由包Enum34引起的。因为Python3.4有一个标准库枚举模块,所以应该卸载Enum34,因为在Python3.6中添加了Enum.Intflag,所以它不再与标准库中的枚举兼容。

解决方法 直接卸载Enum34模块即可 pip uninstall enum34,再安装就不会报错了。

基本用法

Hint: 只能打包 .py 文件

假如我们要打包一个demo.py文件:

  1. 打开cmd,并切换到demo.py文件所在的目录,注意路径中不要有中文
  2. 执行命令:pyinstaller demo.py
  3. 在当前的目录下,将会生成两个文件夹: builddist。dist里面就是所有可执行文件,点击demo.exe就能运行了
可选参数 格式举例 功能说明
-F pyinstaller -F demo.py 只在dist中生产一个demo.exe文件。
-D pyinstaller -D demo.py 默认选项,除了demo.exe外,还会在在dist中生成很多依赖文件,推荐使用。
-c pyinstaller -c demo.py 默认选项,只对windows有效,使用控制台,就像编译运行C程序后的黑色弹窗。
-w pyinstaller -w demo.py 只对windows有效,不使用控制台。
-p pyinstaller -p E:\python\Lib\site-packages demo.py 设置导入路径,一般用不到。
-i pyinstaller -i D:\file.icon demo.py file.icon设置为exe文件的图标

Opencv库相关

opencv-python 中文教程

文件中文路径问题

Opencv 读取图片时不支持中文路径

方案一:

1
2
3
4
5
6
7
import numpy as np
def cv_imread(file_path):
    cv_img = cv2.imdecode(np.fromfile(file_path,dtype=np.uint8),-1)
    return cv_img

def imwrite(file_path)
    cv2.imencode('.jpg',img)[1].tofile(file_path)

方案二:

1
2
3
4
5
6
7
8
import cv2
import matplotlib.pyplot as plt

def cv_img_rgb(path): # 用matplotlib的路径
    img=plt.imread(path)
    # 因为opencv读取是按照BGR的顺序,所以这里转换一下即可
    img_rgb=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
    return img_rgb

视频处理

1
2
cap = cv2.VideoCapture(path) # 出入参数0是调用摄像头
cap.get(id) # 查看视频参数,具体参数见下表
id 参数 参数意义
0 CV_CAP_PROP_POS_MSEC Current position of the video file in milliseconds or video capture timestamp.(当前对应毫秒数)
1 CV_CAP_PROP_POS_FRAMES 0-based index of the frame to be decoded/captured next.(当前对应帧数)
2 CV_CAP_PROP_POS_AVI_RATIO Relative position of the video file: 0 - start of the film, 1 - end of the film.
3 CV_CAP_PROP_FRAME_WIDTH Width of the frames in the video stream.
4 CV_CAP_PROP_FRAME_HEIGHT Height of the frames in the video stream.
5 CV_CAP_PROP_FPS Frame rate.(帧率)
6 CV_CAP_PROP_FOURCC 4-character code of codec.
7 CV_CAP_PROP_FRAME_COUNT Number of frames in the video file.(总帧数)
8 CV_CAP_PROP_FORMAT Format of the Mat objects returned by retrieve() .
9 CV_CAP_PROP_MODE Backend-specific value indicating the current capture mode.
10 CV_CAP_PROP_BRIGHTNESS Brightness of the image (only for cameras).
11 CV_CAP_PROP_CONTRAST Contrast of the image (only for cameras).
12 CV_CAP_PROP_SATURATION Saturation of the image (only for cameras).
13 CV_CAP_PROP_HUE Hue of the image (only for cameras).
14 CV_CAP_PROP_GAIN Gain of the image (only for cameras).
15 CV_CAP_PROP_EXPOSURE Exposure (only for cameras).
16 CV_CAP_PROP_CONVERT_RGB Boolean flags indicating whether images should be converted to RGB.
17 CV_CAP_PROP_WHITE_BALANCE_U The U value of the whitebalance setting (note: only supported by DC1394 v 2.x backend currently)
18 CV_CAP_PROP_WHITE_BALANCE_V The V value of the whitebalance setting (note: only supported by DC1394 v 2.x backend currently)
19 CV_CAP_PROP_RECTIFICATION Rectification flag for stereo cameras (note: only supported by DC1394 v 2.x backend currently)
20 CV_CAP_PROP_ISO_SPEED The ISO speed of the camera (note: only supported by DC1394 v 2.x backend currently)
21 CV_CAP_PROP_BUFFERSIZE Amount of frames stored in internal buffer memory (note: only supported by DC1394 v 2.x backend currently)
# 使用单$作为行内数学公式分界符