我是python框架内省的新手,为了跟踪str函数调用,我尝试设置一个分析器或跟踪器。我已经以各种方式设置了跟踪器,但认为我缺少一些关于框架内省和如何获得内置函数名(即str)的关键理解。
def test_trace():
sys.setprofile(trace_calls)
hi = str('hellllo')
stuff = []
for i in range(10):
stuff.append(str(random.randrange(0, 10000000000)))
print(hi)
os._ex
我正在记录sagemath命令之间的内存使用情况,并希望将其自动化 我找到了%memit,也找到了包装每个命令How to run an IPython magic from a script (or timing a Python script)的信息,但这并不理想 from sage.all_cmdline import * # import sage library
from sage.misc.sage_timeit import sage_timeit
from IPython import get_ipython
ipython = get_ipython()
if
我有一个字符串,这些字符串对应于函数名。我试图使用vars()将这些字符串分配给变量,然后可以用于函数调用。我能够让vars()在函数之外工作,但是当我试图在函数中调用它时,我会得到一个KeyError。下面的代码显然不是我遇到问题的实际代码,但问题是一样的:我可以在vars() dict中找到键,但不能从函数中调用它。
vars()工作:
In [1]: def brian():
...: print "this is the brian function"
...:
In [2]: name = 'brian'
In [3]
今天,我遇到了在iPython控制台中使用非常奇怪的斜杠语法调用函数的可能性。它适用于我在Windows和Linux以及笔记本中使用iPython 2和3,但在常规的Python控制台中却不起作用。我所指的一个例子:
In [4]: def test():
...: print 'hello'
In [5]: / test
hello
正如我所写的,这在iPython中工作,但在常规控制台中引发SyntaxError。是否有任何特定于iPython的调用函数语法的部分原因?
在ipython,我知道我可以保存别名。是否有类似的方法来保存自己的函数,以便下次运行ipython时也可用?
让我说我有功能:
def x(a,b):
print a+b
我尝试使用%store命令:
%store x
stored x (function)
但是下一次我开始ipython的时候,上面写着:
name 'x' is not defined
在IPython笔记本中,通过使用IPython模块中的HTML函数,我曾经能够将包含html的python显示为实际的html。
from IPython.display import HTML
在jupyter笔记本中,显示模块不再存在。有人知道我在哪里可以找到HTML函数吗?
我使用木星笔记本4.1,IPython 4.0.2和Python3.5.1 64位
什么起作用
调用IPython.embed()时,可以传递banner1、banner2或header来自定义交互会话之前出现的消息,如下所示:
import IPython
IPython.embed(banner2="*** Welcome! ***")
其结果是:
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
Type "copyright", "credits" or "license" for more information.
IPython 3.2.1 -- An e
只有在没有参数的情况下,我才想在ipython中别名python,这样我就可以使用ipython的shell及其自动完成功能。例如:
#This should start the ipython shell
python
#These should run python as usual
python -c "print(100)" #run print in python
python --version #run python --version
我试着做一些类似的事情
python() {
if [ "$#" -eq 0 ];
then
i
运行IPython时,如果计算分号,就会得到空字符串的返回值,如下所示。为什么?
我的理论是,它是IPython去掉语句中的行终止符,但这仍然不能解释为什么它返回一个字符串。
ipython
输出:
Python 2.7.12 (default, Oct 11 2016, 05:24:00)
Type "copyright", "credits" or "license" for more information.
IPython 5.1.0 -- An enhanced Interactive Python.
? ->
假设我有一个Python命令或脚本,我希望在IPython会话期间异步地从IPython运行。
我希望从我的IPython会话中调用这个命令,并在它完成时或如果发生故障时得到通知。我不希望这个命令阻止我的IPython提示符。
有任何IPython magics支持这一点吗?如果不是,在IPython上运行异步作业/脚本/命令(在本地运行)的推荐方法是什么?
例如,假设我有一个函数:
def do_something():
# This will take a long time
# ....
return "Done"
我在当前的命名空间中。我如何将它运行到
我想有一个功能,可以在jupyter笔记本重新启动内核。如果我单独使用下面的HTML语句,它可以很好地工作,但在函数中它不能:
from IPython.core.display import HTML
def restart_kernel():
HTML('<script>IPython.notebook.kernel.restart();IPython.notebook.execute_all_cells()</script>')
只有当我在没有任何其他代码的单元格中使用它时,它才能工作:
HTML('<script>I
下面是用脚本编写的代码,比如test_atexit.py
def exit_function():
print "I am in exit function"
import atexit
atexit.register(exit_function)
print "I am in main function"
当我使用python2.4运行函数时,将调用exit_function
$python2.4 test_atexit.py
I am in main function
I am in exit function
当我使用ipython运行同样
在使用我的python包时,某个函数具有一些交互式的matplotlib内容。在木星笔记本,我总是必须使用神奇的%matplotlib qt切换后端,以使它的工作。然而,这在我看来似乎是显而易见的,但其他试图处理我的包的人--这并不是那么直接。
这就是我到目前为止在我的__init__.py中所拥有的
def run_from_notebook():
return hasattr(__builtins__, '__IPYTHON__')
if run_from_notebook():
# this has no effect
try:
我正在跟踪谷歌的,这样我就可以继续使用TensorFlow了。但是,当我试图在中执行代码时,没有从以下行获得输出:
california_housing_dataframe.describe()
以下是我的完整代码,以防有帮助:
import math
from IPython import display
from matplotlib import cm
from matplotlib import gridspec
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
from sklea
在ipython终端中,假设我创建了一个对象,然后键入该对象的名称并按返回键,那么将查询该对象的哪些属性/方法(以及顺序)以生成返回到屏幕的输出?
例如,
In [1]: from mymodule import myclass
In [2]: C = myclass()
In [3]: C # hit return
Out[3]:
查询C的哪些属性/方法以在Out[3]中生成输出
Update:从答案(以及我找到的 )中,它显示了__repr__被调用。但是,我有一个定义__repr__的类,但它似乎没有被使用,我得到了以下跟踪错误:
/usr/local/lib/python2.7/dis
我想让print语句的输出与绘图交错,按照它们在Ipython notebook单元格中打印和绘制的顺序。例如,考虑以下代码:
(使用ipython notebook --no-browser --no-mathjax启动ipython )
%matplotlib inline
import matplotlib.pyplot as plt
i = 0
for data in manydata:
fig, ax = plt.subplots()
print "data number i =", i
ax.hist(data)
i = i + 1
我使用的是IPython,它是从"Enthought发行版“下载的。
在IPython /Python2.7.3下,当我输入help(__doc__)时,结果是:
In [26]: help(__doc__)
no Python documentation found for 'Automatically created module for IPython interactive environment'
这个结果的意义是什么?IPython不支持?
谢谢!