在 python 开发过程中,经常遇到各种小问题,有的时候一个小问题便需要花大半天甚至数天时间才能解决。为方便今后查找,这篇博客主要记录在 python 开发过程中遇到的各种小问题以及相应的解决方法。
ipython 重新加载模块
问题
为了提高加载速度,ipython 运行过程中对所有的 module 只会 import 一次,而在稍微大一些的项目中,往往需要编写多个 module 以方便管理。这样一来,当需要在 submodule 里面修改内容时,主程序并不能及时更新,使用的还是最开始加载的内容。
解决方案
最简单的解决方法就是每次修改 submodule 内容以后重启 ipython,但这样做非常麻烦而且有可能丢失数据。下面介绍一种利用 ipython 的 autoreload 扩展 [1]彻底解决该问题的方法:
在 ipython 的配置文件 ~/.ipython/profile_default/ipython_config.py 中添加下面两段内容:
1 | c.InteractiveShellApp.extensions = ['autoreload'] |
如果目前 ~/.ipython/profile_default/ 文件夹中不存在 ipython_config.py,可以在终端中输入以下命令来创建:
1 | ipython profile create |
该命令会自动创建 ipython 的配置文件,所有可用的配置都被注释好了,我们要做的就是根据自己的需要打开相应的配置并添加相应的内容就好了。
Theano 和 Lasagne 模块 import 错误
问题
在 Theano 和 Lasagne 模块 import 过程中报 ImportError 错误。
解决方案
利用 pip 安装 theano 和 lasagne 模块的正确版本,命令如下:
1 | $ pip install theano==0.8.2 |
Reference
[1] ipython document