小编Ala*_*ain的帖子

在IPython中重新加载子模块

目前我正在开发一个包含子模块并使用numpy/scipy的python项目.Ipython用作交互式控制台.不幸的是,我对我现在使用的工作流程不是很满意,我将不胜感激.

在IPython中,框架由一个简单的import命令加载.但是,通常需要更改框架的一个子模块中的代码.此时已经加载了一个模型,我使用IPython与它进行交互.

现在,框架包含许多相互依赖的模块,即在最初加载框架时,主模块正在导入和配置子模块.只有在使用重新加载模块时才会执行对代码的更改reload(main_mod.sub_mod).这很麻烦,因为我需要使用完整路径单独重新加载所有已更改的模块.如果reload(main_module)还要重新加载所有子模块,但没有重新加载numpy/scipy 将是非常方便的..

python ipython

329
推荐指数
7
解决办法
12万
查看次数

在IPython中嵌入式交互式shell

在切换到IPython v0.11(使用Python 2.6.1)之前,可以使用例如这样嵌入交互式IPython shell ,例如

from IPython.Shell import IPShellEmbed
ipshell = IPShellEmbed()
ipshell() # this call anywhere in your program will start IPython
Run Code Online (Sandbox Code Playgroud)

"嵌入式shell已被重构为一个名为InteractiveShellEmbedInteractiveShell真正独立的子类.所有嵌入逻辑都已从基类中取出并放入嵌入式子类中"(参见此处此处).

我理解它的方式你现在应该可以简单地启动一个控制台

import IPython
IPython.embed()
Run Code Online (Sandbox Code Playgroud)

然而,这提高了

TraitError:InteractiveShellEmbed实例的'exit_msg'特征必须是字符串,但指定了u''的值.

如果我们通过一个字符串exit_msg通过

IPython.embed(exit_msg='Whatever')
Run Code Online (Sandbox Code Playgroud)

然后它引发了一个不同的错误

AttributeError:'InteractiveShellEmbed'对象没有属性'set_completer'

有没有人遇到过这个问题?否则这可能是一个错误,因为它毕竟是开发人员版本.

python embed ipython

6
推荐指数
2
解决办法
1万
查看次数

标签 统计

ipython ×2

python ×2

embed ×1