如何 运行 shell-IPython 中的命令? (Python 分析 GUI 工具)
How to run shell-commands in IPython? (Python Profiling GUI tools)
我正在尝试在 IPython 中进行文件分析,生成一些分析统计输出,然后将其传递给一些 Python 分析 GUI 工具,如 KCachegrind。这是我试图做到这一点的代码。所有代码都在IPython.
中执行
# example function for profiling
def factorial(n):
if n == 0:
return 1.0
else:
return float(n) * factorial(n-1)
def taylor_sin(n):
res = []
for i in range(n):
if i % 2 == 1:
res.append((-1)**((i-1)/2)/float(factorial(i)))
else:
res.append(0.0)
return res
# generate cProfile output (the stats, not the text)
%prun -D prof.out x = taylor_sin(500)
# do conversion using pyprof2calltree
# to do it in IPython, add prefix '!' to code to make it Shell-command code
!pyprof2calltree -i prof.out -o prof.calltree
现在 IPython 打印一条错误消息:
!pyprof2calltree -i prof.out -o prof.calltree
/bin/sh: 1: pyprof2calltree: not found
这是说我没有在环境路径中添加 pyprof2calltree
之类的吗?如何解决?
我可以 运行 在纯粹的 shell 命令中完美地完成它。但我不喜欢在 IPython 和终端之间频繁切换,我想在 IPython 中完成所有操作。我知道添加前缀 !
会使代码 运行 类似于 shell 命令,但为什么它会向我引发错误,如上所示?
Jian@Home-PC:~/Dropbox/Coding/Python$ pyprof2calltree -i prof.out -o prof.calltree
writing converted data to: prof.calltree
Jian@Home-PC:~/Dropbox/Coding/Python$
IPython安装了Anaconda py3.4;操作系统 Ubuntu 14.04; pyprof2calltree
通过 pip 安装
来自 pyprof2calltree documentation 中的 ipython
示例:
>>> from pyprof2calltree import convert, visualize
>>> visualize('prof.out')
>>> convert('prof.out', 'prof.calltree')
或者:
>>> results = %prun -r x = taylor_sin(500)
>>> visualize(results)
>>> convert(results, 'prof.calltree')
您也可以试试:
>>> %run -m pyprof2calltree -i prof.out -o prof.calltree
我正在尝试在 IPython 中进行文件分析,生成一些分析统计输出,然后将其传递给一些 Python 分析 GUI 工具,如 KCachegrind。这是我试图做到这一点的代码。所有代码都在IPython.
中执行# example function for profiling
def factorial(n):
if n == 0:
return 1.0
else:
return float(n) * factorial(n-1)
def taylor_sin(n):
res = []
for i in range(n):
if i % 2 == 1:
res.append((-1)**((i-1)/2)/float(factorial(i)))
else:
res.append(0.0)
return res
# generate cProfile output (the stats, not the text)
%prun -D prof.out x = taylor_sin(500)
# do conversion using pyprof2calltree
# to do it in IPython, add prefix '!' to code to make it Shell-command code
!pyprof2calltree -i prof.out -o prof.calltree
现在 IPython 打印一条错误消息:
!pyprof2calltree -i prof.out -o prof.calltree
/bin/sh: 1: pyprof2calltree: not found
这是说我没有在环境路径中添加 pyprof2calltree
之类的吗?如何解决?
我可以 运行 在纯粹的 shell 命令中完美地完成它。但我不喜欢在 IPython 和终端之间频繁切换,我想在 IPython 中完成所有操作。我知道添加前缀 !
会使代码 运行 类似于 shell 命令,但为什么它会向我引发错误,如上所示?
Jian@Home-PC:~/Dropbox/Coding/Python$ pyprof2calltree -i prof.out -o prof.calltree
writing converted data to: prof.calltree
Jian@Home-PC:~/Dropbox/Coding/Python$
IPython安装了Anaconda py3.4;操作系统 Ubuntu 14.04; pyprof2calltree
通过 pip 安装
来自 pyprof2calltree documentation 中的 ipython
示例:
>>> from pyprof2calltree import convert, visualize
>>> visualize('prof.out')
>>> convert('prof.out', 'prof.calltree')
或者:
>>> results = %prun -r x = taylor_sin(500)
>>> visualize(results)
>>> convert(results, 'prof.calltree')
您也可以试试:
>>> %run -m pyprof2calltree -i prof.out -o prof.calltree