问题标签 [ipython]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
18331 浏览

python - 如何在 PyQT 小部件中嵌入 Python 解释器

我希望能够从我的 python 应用程序中调出一个交互式 python 终端。我的程序中的一些(但不是全部)变量需要暴露给解释器。

目前我使用子类和修改QPlainTextEdit并将那里的所有“命令”路由到evalor exec,并跟踪字典中的单独命名空间。然而,必须有一个更优雅和健壮的方式!如何?

这是一个做我想做的事的例子,但它是用 IPython 和 pyGTK... http://ipython.scipy.org/moin/Cookbook/EmbeddingInGTK

以下是我目前拥有的。但是有很多极端案例,我可能错过了一些。它很慢,尝试一个大的打印循环......它必须是一种更简单且不易出错的方式,......我希望!

def runCommand(self)功能是理解我的问题的关键。理想情况下,我不想改进它,我宁愿用更简单、更智能的东西替换它的内容。

console.updateNamespace({'myVar1' : app, 'myVar2' : 1234})“main”中语句的功能也很重要。

0 投票
7 回答
8529 浏览

python - 带有调试和 iPython 集成的 Python IDE?

有谁知道将 iPython 作为解释器的 python IDE?

使用标准解释器只会让我发疯,因为我刚刚开始喜欢使用 iPython 及其提供的所有功能。老实说,我宁愿使用简单的文本编辑器 + ipython 来编写代码,也不愿使用 IDE,但我喜欢能够通过单击鼠标等设置断点,所以我想将两者结合起来。

对不起,如果那里有什么东西,这是常识。非常感谢您提供的任何信息/提示。谢谢!

0 投票
8 回答
53595 浏览

python - 防止 Python 缓存导入的模块

在使用 IPython 在 Python 中开发一个大型项目(拆分为多个文件和文件夹)时,我遇到了缓存导入模块的麻烦。

问题是指令import module只读取该模块一次,即使该模块已更改!所以每次我更改包中的某些内容时,我都必须退出并重新启动 IPython。痛苦。

有没有办法正确强制重新加载某些模块?或者,更好的是,以某种方式阻止 Python 缓存它们?

我尝试了几种方法,但都没有奏效。特别是我遇到了非常非常奇怪的错误,例如某些模块或变量神秘地等于None...

我发现的唯一明智的资源是Reloading Python modules,来自 pyunit,但我没有检查它。我想要那样的东西。

一个不错的选择是让 IPython 重新启动,或者以某种方式重新启动 Python 解释器。

那么,如果你用 Python 开发,你找到了什么样的解决方案来解决这个问题呢?

编辑

说清楚:显然,我知道一些旧变量取决于模块的先前状态可能会保留。那个我能接受。为什么在 Python 中强制重新加载模块而不发生各种奇怪的错误如此困难?

更具体地说,如果我将整个模块放在一个文件中module.py,则以下内容可以正常工作:

这段代码工作得很好,我可以在几个月内不退出 IPython 的情况下进行开发。

但是,每当我的模块由几个子模块组成时,地狱就会崩溃:

为什么无论我将模块放在一个大文件中还是在多个子模块中,Python 会有如此不同?为什么这种方法不起作用?

0 投票
1 回答
1779 浏览

django - Django ipython shell 中 %autoreload 的正确配置是什么?

Ipython 有一个名为 autoreload 的插件,它可能会在每个命令之后重新加载所有模块,因此您可以更改源代码而不必退出 shell 并重新输入所有命令。例如,参见http://dsnra.jpl.nasa.gov/software/Python/tips-ipython.html 。

然而,当与 Django 一起使用时,这似乎充其量是不稳定的,例如 python manage.py shell 给了我一个带有 Django 上下文的 IPython shell,但自动重新加载似乎根本无法可靠地工作。

这是我添加到 ipy_user_conf.py 文件中的内容:

自动重新加载在有限的情况下起作用,可能是 10-20% 的时间。有没有人成功地将它配置为与 Django 一起使用?

0 投票
4 回答
4215 浏览

python - 如何启动 Python ipython shell,在其中自动运行一些命令,并保持打开状态?

我试过

哪个运行命令,但之后 ipython 立即退出。

有任何想法吗?谢谢!

编辑: 我实际上需要将命令传递到交互式 Django shell,例如:

所以建议的 -i 开关 gimel 似乎不起作用(执行后 shell 仍然退出)

0 投票
1 回答
583 浏览

python - IPython 有自己的范围?

在 python 脚本末尾调用 IPython 时,我遇到了范围变量的问题。我在脚本本身中调用的所有函数都可以修改变量,这些变量随后将被其他函数使用。如果我在 ipython 中调用相同的函数,脚本化的函数可以访问已更改的变量,但调用 ipython 时存在的变量不会更改。因此我的问题是:如何将全局变量传播到 ipython?(我当然可以做类似 A=globals()['A'] 的事情,但那很难看)

0 投票
7 回答
15125 浏览

python - 在 ipython 历史中搜索

ipython%his命令输出用户最近输入的命令。是否可以在这些命令中进行搜索?像这样的东西:

编辑我不是在寻找重新运行命令的方法,而是在历史列表中找到它。当然,有时我会想在找到命令后重新运行命令,无论是逐字还是修改。

EDIT搜索ctr-r然后键入plot会给出以“plot”开头的最新命令。它不会列出所有以它开头的命令。您也不能在命令的中间或末尾搜索

解决方案

在这里扩展我正在寻找的 PreludeAndFugue 的解决方案:

在这里,if条件可以用正则表达式代替

0 投票
0 回答
294 浏览

python - IPython Shell 中的错误

我刚刚开始使用 IPython,它有一些非常酷的特性。我特别喜欢它“记住”以前 shell 会话的输入。但是,标签完成时我遇到了一些麻烦。

这是我的控制台的示例:

a是一个字符串,我输入a.__class__.然后点击TAB,这就是结果

有没有其他人有这个问题?有什么修复吗?

谢谢

0 投票
2 回答
542 浏览

django - iPython - 重新加载 Django 后“损坏”的外壳/终端

我将 iPython shell 嵌入到 Django 脚本中(使用开发服务器,例如本地主机上的 runserver),如下所示:

这给了我在所需位置的交互式外壳。现在,如果修改源代码,Django 会自动重新加载,可能没有正确退出 iPython shell,并且“破坏”我的终端仿真器(xterm,konsole) - 文本变得不可见等(如果在 Django 中运行的 iPython 使用 Ctrl 终止,效果相同+d)。

有什么建议可能导致这种情况吗?(我可能以错误的方式使用 iPython,但谁知道)。

0 投票
1 回答
7059 浏览

python - 使用带有 pylab/matplotlib 嵌入的 Tkinter 播放、暂停、停止功能的彩色绘图动画:无法更新图形/画布?

我已经看过但没有找到足够具体的以前的问题,如果重复的话,很抱歉。目标:GUI 使用 pylab 的 pcolor 绘制的不同矩阵数据不断更新图形,以便有一个正在运行的动画。但是用户应该能够通过 Tkinter 小部件按钮播放、暂停、停止动画。

在我使用 set_array()、draw() 和 canvas.manager.after() 得到 matplotlib 的答案之前......,我有可以启动动画的工作代码,但我不知道如何停止或暂停它,当只是使用 matplotlib 功能时,所以我决定直接使用 Tkinter 而不是 matplotlib 的 Tcl/Tk 包装器。这是工作代码,只是为了防止有人有任何想法。但继续真正的问题。

顺便说一句:在导入 pylab 时,TkAgg 后端会自动设置为在 matplotlib 中使用……我想。或者不知何故我自动使用 TkAgg。我正在运行 Linux、Python 2.6.4、Ipython 0.10。

我处理了从 Daniweb IT Discussion Community 中找到的代码,以便使用 Tkinter 和 update_idletasks() 函数我可以播放、鼓掌、停止标签小部件的颜色变化。只要安装了 Tkinter,它就可以单独在 python 上运行。没有使用 matplotlib 或 pylab。这是工作代码,也是我质疑的最终代码的主干。

然后,在 matplotlib 示例 embedding_in_tk.html、http ://matplotlib.sourceforge.net/examples/user_interfaces/embedding_in_tk.html 的帮助下,我操纵了前面的代码来为连接到 pcolor 图形的画布设置动画。但是,使用 canvas.get_tk_widget() 更新画布并不能达到我假设的效果,因为它之前的命令会重新绘制 pcolor()。所以我猜我每次重新绘制时都必须重新连接画布和图形?但我不知道怎么做。我希望我什至使用 update_idletasks() 走在正确的轨道上???

那么,使用以下代码,当代码循环播放时,我看到的只是相同的图,而不是更新的图形?这是我的主要问题和疑问。

谢谢您的帮助!