自动导入IPython中缺少的模块。

ipython-autoimport的Python项目详细描述


Python33TravisCodeCov

在ipython中自动导入缺少的模块:而不是

In [1]: plt.plot([1, 2], [3, 4])
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-1-994ba2bf13c0> in <module>()
----> 1 plt.plot([1, 2], [3, 4])

NameError: name 'plt' is not defined

In [2]: from matplotlib import pyplot as plt

In [3]: plt.plot([1, 2], [3, 4])
Out[3]: [<matplotlib.lines.Line2D at 0x7f73f0179198>]

照我说的做:

In [1]: plt.plot([1, 2], [3, 4])
Autoimport: from matplotlib import pyplot as plt
Out[1]: [<matplotlib.lines.Line2D at 0x7f7e253552b0>]

灵感来自@orangeflash81的version,有很多 改进:

  • 不依赖于重新执行,而是挂接用户命名空间;因此, 即使在有副作用的情况下也是安全的,并且可以完成制表和 魔法也是。
  • 从历史中学习您喜欢的别名。
  • 抑制不相关的链接回溯。
  • 自动导入子模块。
  • pip-可安装。

安装

从中选择一个:

$ pip install ipython-autoimport  # from PyPI
$ pip install git+https://github.com/anntzer/ipython-autoimport  # from Github

然后附加^{tt2}的输出$ 到ipython profile locate的输出(通常 ~/.ipython/profile_default/ipython_config.py)。

使用pytest运行测试(在python 3.3上,测试需要pathlib)。

限制

结构如

class C:
   auto_imported_value

不会工作,因为它们是使用类局部变量(而不是 修补的局部变量);修补全局变量将不起作用,因为LOAD_NAME查询 使用PyDict_GetItem的全局变量(注意,它使用 PyObject_GetItem;还有,LOAD_GLOBALS查询两个全局和 使用PyObject_GetItem的内置程序,这样我们就可以轻松修补 内置指令相反,但这似乎有点太侵入…。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我能在这个程序中更好地使用内存吗?   为什么我的Java while循环迭代了一半   java IntelliJ IDEA不在构建时复制资源   socket仅在Java TCP服务器输出上检查客户端断开连接   java游戏物理摩擦   java片段onClick调用方法   symja数学分析器中无法识别java Abs[x]   java在使用泛型时创建二进制搜索树类的实例?   java在外键约束表上的添加和删除   语法java表达式的含义,如果有条件   java创建内联对象并作为参数传递   是否有相当于Redis排序集(zset)的Java数据结构   java找不到适合的方法(无参数)   音频文件操作给定字节帧的音量Java   Eclipse4不以JavaWebStart启动   java如何使用org在JSON对象中获取嵌套的键元素。json?   java与Jackson的反序列化:“org.codehaus.Jackson.map.JsonMappingException:无法反序列化[projectname]的实例。”   字符串的Java正则表达式   spring集成上的java检测缺火指令