我在Python 2.7中创建了这个函数ipython:
def _(v):
return v
Run Code Online (Sandbox Code Playgroud)
以后,如果我打电话_(somevalue),我会_ = somevalue.
in[3]: _(3)
out[3]: 3
in[4]: print _
out[4]: 3
Run Code Online (Sandbox Code Playgroud)
功能消失了!如果我打电话给_(4)我:
TypeError: 'int' object is not callable`
Run Code Online (Sandbox Code Playgroud)
为什么?这个功能出了什么问题?
我有一些Python代码示例我想分享,如果在终端Python/IPython或IPython笔记本中执行,应该做一些不同的事情.
如何从我的Python代码中检查它是否在IPython笔记本中运行?
我一直试图在几个教程之后设置一个ipython服务器(因为没有一个是我的情况).几天前,我确实设法让它达到启动的程度,但之后却无法通过url访问它.今天它不再发布了,我找不到太多关于我得到的这个特定错误:
Traceback (most recent call last):
File "/usr/local/bin/ipython", line 9, in <module>
load_entry_point('ipython==4.0.0-dev', 'console_scripts', 'ipython')()
File "/usr/local/lib/python2.7/dist-packages/ipython-4.0.0_dev-py2.7.egg/IPython/__init__.py", line 118, in start_ipython
return launch_new_instance(argv=argv, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/traitlets-4.0.0-py2.7.egg/traitlets/config/application.py", line 591, in launch_instance
app.initialize(argv)
File "<string>", line 2, in initialize
File "/usr/local/lib/python2.7/dist-packages/traitlets-4.0.0-py2.7.egg/traitlets/config/application.py", line 75, in catch_config_error
return method(app, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/ipython-4.0.0_dev-py2.7.egg/IPython/terminal/ipapp.py", line 302, in initialize
super(TerminalIPythonApp, self).initialize(argv)
File "<string>", line 2, in initialize
File "/usr/local/lib/python2.7/dist-packages/traitlets-4.0.0-py2.7.egg/traitlets/config/application.py", line 75, in catch_config_error
return method(app, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/ipython-4.0.0_dev-py2.7.egg/IPython/core/application.py", line 386, in initialize
self.parse_command_line(argv)
File "/usr/local/lib/python2.7/dist-packages/ipython-4.0.0_dev-py2.7.egg/IPython/terminal/ipapp.py", …Run Code Online (Sandbox Code Playgroud) 如果我导入定义属于某个包的同名类的模块,则由于父包的__init__.py而导致它作为Class而不是Module导入.有关详细信息,请参阅不同目录的不同导入结 在Python shell或ipython shell中,如果我这样做
from MyPak import MyMod
MyModule总是作为Class导入,因此我无法重新加载它(reload()仅适用于模块).跑
from MyPak import MyMod
再似乎没有更新类定义.任何人都可以建议一种方法来更新python shell中的类?
PS.无需重新启动python解释器.
pps.万一你手头有代码并想测试它:我实际上是在谈论BioPython,我正在研究Bio.PDB.PDBParser.我有一个ipython shell(v0.10)并编辑PDBParser.py.只是无法在ipython中重新加载它.
所以这就是我所做的:
# start ipython v0.10
import Bio
from Bio.PDB import PDBParser
p = PDBParser()
s = p.get_structure()
# then I make changes,e.g. simply print some text, in PDBParser.py
del Bio
del PDBParser
del s
import Bio # or reload(Bio) without deleting all the objects
from Bio.PDB import PDBParser
p = PDBParser()
s = p.get_structure() # expected output after change not …Run Code Online (Sandbox Code Playgroud) 我正在尝试在运行IPython笔记本时获取当前的NoteBook名称.我知道我可以在笔记本的顶部看到它.我喜欢什么样的东西
currentNotebook = IPython.foo.bar.notebookname()
Run Code Online (Sandbox Code Playgroud)
我需要在变量中获取名称.
通常,我的工作流程涉及在IPython shell中进行数据清理/修改.自从IPython 5.0版本以及终端界面的所有重大升级以来,这已经变得特别精彩.所以,假设我试图修改一些非结构化数据:
In [11]: for i, (num, header, txt) in enumerate(data):
...: header = [e.strip() for e in header.strip().split('\n')]
...: header[4] = header[4].strip(',').split(',')
...: data[i] = (num, header, txt)
...:
Run Code Online (Sandbox Code Playgroud)
太棒了,它有效!但现在,我真的想在编辑器中将其添加到脚本中.如果我从终端复制并粘贴,我会捕获左边的所有垃圾.我可以在编辑器中轻松地清理它,但如果我可以直接将代码从终端直接复制到我的剪贴板而不触摸鼠标而且不需要抓取额外的东西,这将是很棒的.在IPython中有这样的功能吗?
我在 macOS 上使用 Python 3.8.9 和 IPython 8.0.1。当我输入任何内容时,它会显示基于过去命令的预测建议。凉爽的。
然而,我如何真正接受这个建议呢?我尝试了明显的:选项卡,它不接受建议,而是打开一个包含不同建议的菜单,而原始建议仍然存在(参见屏幕截图)。
我也尝试过太空和返回,但这两者都表现得好像从未提出过这个建议。我到底如何使用ipython 自动建议?或者 tab 应该可以工作,但我的 ipython 构建有问题还是什么?
我在IPython Notebook中运行这个单元格:
# salaries and teams are Pandas dataframe
salaries.head()
teams.head()
Run Code Online (Sandbox Code Playgroud)
其结果是,我只得到的输出teams数据帧,而不是两者的salaries和teams.如果我只是运行salaries.head()我得到salaries数据帧的结果,但在运行两个语句我只看到输出teams.head().我怎么能纠正这个?
我刚刚使用IPython笔记本编写了我的第一篇广泛的Python教程.一切顺利,除了我做了很多测试和移动块.如何重置In [ ]:编号?我试过戒烟和重装,但这似乎不起作用.
如果我有多个图像(加载为NumPy数组),我如何在一个IPython Notebook单元格中显示?
我知道我可以plt.imshow(ima)用来显示一张图片...但我想一次显示多张图片.
我试过了:
for ima in images:
display(Image(ima))
Run Code Online (Sandbox Code Playgroud)
但我只是得到一个破碎的图像链接:
