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 打印所有交互式变量