windows+pycharm下的theano配置问题

复现论文参考官方代码时需用到theano框架,本以为一个简单的pip直接搞定,无奈连import theano都无法运行,紧接着冒出来一堆问题,直接耗了我一个下午的宝贵时光。

不过所幸最终theano配置问题已经解决,可以顺利进行下面的源代码学习。在此记录一下配置theano时的一些经历供大家参考。
以下经历或许会出现部分答案和问题不对应的情况,毕竟整个过程中出现的问题较多,可能出现一些细节差错,这种情况还希望大家谅解,并自行尝试将答案与问题进行匹配(简单说就是多尝试)。

问题初现:
import theano的报错如下:

WARNING (theano.configdefaults): g++ not available, if using conda: `conda install m2w64-toolchain`
balabala....................(一些代码)
configparser.NoSectionError: No section: 'blas'
balabala....................(一些代码)
KeyError: 'blas.ldflags'
balabala....................(一些代码)
AttributeError: module 'numpy.distutils.__config__' has no attribute 'blas_opt_info'

问题初步分析
第一个部分就让我很担心了,毕竟本着能省事就省事的原则,自己电脑上一直没有配置anaconda。
剩下的一堆显然是在提示缺少了一些跟“blas”相关的包,但也不能直接pip install blas或者pip install blas_opt_info什么的。所以对于一头雾水的我,只能直接C一下:windows下安装theano,上链接:
1、Windows下pycharm使用theano的方法
2、anaconda2.5+pycharm+theano环境配置
上面两个链接是我整理的比较通俗易懂的文章,总的来说,安装/配置顺序为:anaconda->mingw / libpython->theano。

安装mingw libpython
安装anaconda倒不是太麻烦,网上教程一堆,大家可以自行查找。这里为了节省时间,我安装了miniconda。安装libpython有些麻烦,教程说直接install:

conda install mingw libpython

可事实哪有这么容易,要顺利执行上述语句,得保证有mingw这个包,否则报错,所以还是老老实实去C了一下mingw。经查找,可以在以下网站找到安装包和安装指令(摘自“陆勼”的博客):
mingw 4.7安装包

conda install -c free mingw

万事大吉?不不不,下载进度一直0%…
怎么办?
我试着找源文件,点击上述网站的Files,出现下面内容,显然是一些不容版本的mingw,本着随大流的原则去下载“下载量”最高的那一个(第三行红框):
windows+pycharm下的theano配置问题_第1张图片
鼠标放在绿色字符串右键复制链接,然后再用conda下载mingw。

conda install https://anaconda.org/free/mingw/4.7/download/win-64/mingw-4.7-1.tar.bz2

然后才可以继续安装libpython

conda install mingw libpython

此时可能还是会报错,提示channels相关的问题:

PackagesNotFoundError: The following packages are not available from current channels:

  - mingw

这里要感谢这位大佬的解答:“老卫带你学”的博客
貌似是官方不让用镜像的意思,但我复制的链接是在官网复制的啊,这里有些不太理解,可能这里我记错了一些顺序,所以这个channels问题和答案的匹配问题大家可以自行尝试,输入以下指令:

conda config --remove-key channels

然后再安装mingw和libpython

conda install mingw libpython

安装theano
最后安装theano:

conda install theano

出现一堆正在安装的依赖包就可以松口气了,等待即可:
windows+pycharm下的theano配置问题_第2张图片
接下来尝试import theano,出现警告:

WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions.

虽然可以搜索这个bug的解决方案,网上也有很多,但我猜测是因为跟numpy有一定的依赖关系,而且代码中也要用到numpy,因而直接尝试:

import numpy as np
import theano

theano导入成功,问题解决:
theano导入成功
完结散花

你可能感兴趣的:(pycharm,python,windows,深度学习)