IPython 的正确打开方式
前言
接触 IPython 其实已经很久了,但一直把它当做简单的 Python Shell 去用,并没有深入的研究过。直到今天调试程序的时候,发现每次修改完某个文件,都需要退出然后再进入 IPython 环境,重新导入一次模块才会生效。来回几次感觉自己特别傻,这样调试一点也不“优雅”,Google 了下才发现 IPython 里有个 autoreload 命令,可以自动监测文件改动,然后重新载入。很多时候效率低其实不是工具不好,是不会用。今天就整理一下 IPython 中的一些常用命令。
自动重载
autoreload 主要用途是在用户执行代码块之前重新加载模块。使用效果如下:
| In [1]: %load_ext autoreload | 
如上所示在修改完某个文件后再次调用同一方法,返回的结果不同,也不需要退出交互环境。但下次进入 IPython 的时候还是需要敲 autoreload 命令,所以我们可以再修改一下 IPython 的配置文件,让它每次启动的时候,自动执行 autoreload 命令。
如果之前没有配置过 IPython ,可以使用如下命令新建配置文件:
ipython profile create如果之前配置过,可以在 ~/.ipython/profile_default/ 中(默认)修改之前的配置文件,一般命名为 ipython_config.py 。
在配置文件中做如下修改:
| ## lines of code to run at IPython startup. | 
这样就可以优雅的调试了😁
常用命令
下面介绍一些常用的命令:
- run       运行 Python 脚本,每次都从磁盘读取,和导入模块不同
- edit      调用编辑器进行编辑(可以配置是 Vim 还是 Emacs)
- debug     调用 pdb 调试程序,可以通过参数设置断点
- history   检查历史输入和输入,可以通过配置保存输出历史记录
- cd        更改当前工作目录
- timeit    程序执行时间
- alias     定义系统命令别名
- autocall  使函数可以不用输入括号来调用
- bookmark  将某个目录设置为书签,下次可以直接使用 cd -b 进入
- env       获取、设置或列出环境变量
- lsmagic   列出可用的魔术功能
- pdb       控制 pdb 调试器,具体参考 pdb 用法
- pwd       返回当前工作目录
- recall    重复一个命令
- rehashx   获取 $PATH 中所有别名
- who       打印所有交互式变量