学习Python的初衷,是为了机器学习,它有很强大的scikit-learn库,无奈本人Python太渣,又苦于IDE过于简单,所以一直也没啥进展。因为工作相关,一直在从事OpenCV的研发工作,最近突发奇想,既然Python也支持OpenCV,我何不再努把力,好好学习学习Python,如果有幸一日学成,把机器学习和计算机视觉应用地得心应手,也能提升下未来的竞争力。于是趁这周末,硬下头皮,准备开整。
没想到整整折腾了两天的时间,居然才把环境搭完,中间遇到各种无语的问题让我崩溃,现在完事了,在继续奔向我光明前程之前,准备先把整个过程记录下来,纪念这两天趟过的坑。。。
整体的环境是Win7 64位系统 + OpenCV3.1.0 + Visual Studio 2010 + Python2.7.11 + cmake3.4.2,不过在装安装包时选择的都是32位,因为要装很多第三方库,怕64位安装包不兼容导致返工,其实就这样也返工了不少。
整体的安装顺序大体是这样的:
1.安装Python,以及numpy,scipy,matplotlib
Python之前不懂,所以看到pip、easy_install、whl什么的就发蒙,想下个安装包给出个链接是zip的也让我不知所措,刚开始就处心积虑的去找exe,结果有的exe要不就是版本太旧,要不居然还打不开,提示好像是文件被破坏的问题O__O "…后来耐着性子看了看easy_install和pip,觉得还行,于是又开始装easy_install和pip。折腾了一顿,现在总算能明白点东西,有些可能是特别基础的,先写几个,以后再补充:
whl是可以被直接安装的,先pip install wheel,之后pip install 包名字.whl 即可安装某模块包,不过我试了几个第三方库的whl,安装完会报错,不知道为啥,whl到底是啥也不懂,有时间查下再补充;
pip可以安装,虽然我从来没用它安装成功过,在安装scikit-learn时试了一两个小时都不好使,不过用它卸载第三方库还是挺好用的,比如之前我安装numpy时后来跟别的版本不兼容,就用它执行uninstall命令,还好没让我失望。
easy_install还是蛮好用的,最起码scikit-learn我是用它成功安装的,之前试了N多方法都不好使。
2.采用cmake和Visual Studio 2010编译OpenCV310,这样就把OpenCV库集成到Python里
最好别有中文路径,最开始在使用cmake安装OpenCV时,source的路径就是中文的,导致配置之后build OpenCV.sln时中文路径不识别结果没有编译过去,只好把source的路径又重来了一遍。
3.安装scikit-learn
上面已经提了,用pip,whl安装都不好使,最后用easy_install终于好使了。
4.安装Python IDE环境:PTVS及IPython。
在最后安装IPython notebook时,本来已经安装成功,结果怎么打开都会报错,后来上网去查问题,说是管理员的用户名是中文的。。
好吧,还好最后还有个补救方案,写了个Python代码,每次启动时运行一下即可,虽然稍微有点不太方便,不过也勉强可以接受了。
import os
import subprocess
base = 'C:\\data'
jupyter_dir = os.path.join(base,'.jupyter')
if not os.path.exists(jupyter_dir):
os.mkdir(jupyter_dir)
dirs = {'JUPYTER_CONFIG_DIR' : jupyter_dir, 'JUPYTER_RUNTIME_DIR' : os.path.join(jupyter_dir,'runtime'),'JUPYTER_DATA_DIR' : os.path.join(jupyter_dir,'data')}
for k,v in dirs.iteritems():
if not os.path.exists(v):
os.mkdir(v)
os.environ[k] = v
ipython_dir = os.path.join(base,'.ipython')
if not os.path.exists(ipython_dir):
subprocess.call(['cmd.exe','/C', 'mklink','/J',ipython_dir,'%USERPROFILE%\\.ipython'])
os.environ['IPYTHONDIR'] = ipython_dir
subprocess.call(['D:\\Program Files\\Python27\\Scripts\\jupyter-notebook.exe'])
基本上先这么些,中间有很多过程和细节都忘了,当时只是图快,其实要是记录一下就好了,这样印象和收获就能更深和更多些,还有就是我看网上提到有已经编译好的第三方库,直接下载就行,具体怎么做以后再研究吧,有新的东西再在此更新。
有些东西先记下来以后备用:
http://www.lfd.uci.edu/~gohlke/pythonlibs
更新:今天和同事讨论了才知道,原来可以直接下个Pythonxy工具,里面包含了大量的第三方库,其中也有OpenCV,一键安装,好吧…