Ipython 在jupyter笔记本上运行gvmagic扩展返回FileNotFounError
我正在Windows 10机器上使用Anaconda 2.5.0(64位)中的jupyter笔记本开发Python 3.5.3。我正在尝试使用一个名为“gvmagic”的扩展,它用于查看图形。扩展似乎已加载,但返回的是FileNotFoundError而不是图形 我的输入代码是(注意:“visualize_de_bruijn_graph”是一个自定义代码,用于从字符串构建de bruijn graph): 其中返回图形:Ipython 在jupyter笔记本上运行gvmagic扩展返回FileNotFounError,ipython,anaconda,jupyter-notebook,python-3.5,ipython-magic,Ipython,Anaconda,Jupyter Notebook,Python 3.5,Ipython Magic,我正在Windows 10机器上使用Anaconda 2.5.0(64位)中的jupyter笔记本开发Python 3.5.3。我正在尝试使用一个名为“gvmagic”的扩展,它用于查看图形。扩展似乎已加载,但返回的是FileNotFoundError而不是图形 我的输入代码是(注意:“visualize_de_bruijn_graph”是一个自定义代码,用于从字符串构建de bruijn graph): 其中返回图形: digraph "DeBruijn Graph" { CG [label
digraph "DeBruijn Graph" {
CG [label="CG"] ;
TC [label="TC"] ;
GC [label="GC"] ;
AC [label="AC"] ;
GT [label="GT"] ;
AC -> CG ;
CG -> GC ;
GC -> CG ;
CG -> GT ;
GT -> TC ;
TC -> CG ;
}
尝试使用以下代码可视化图形:
%load_ext gvmagic
%dotstr dbg
返回下面的错误。我无法找出丢失了什么文件,因为引用的所有文件都是它们应该位于的位置
FileNotFoundError Traceback (most recent call last)
<ipython-input-17-d138faf6c47c> in <module>()
----> 1 get_ipython().magic('dotstr dbg')
C:\Users\username\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py in magic(self, arg_s)
2161 magic_name, _, magic_arg_s = arg_s.partition(' ')
2162 magic_name = magic_name.lstrip(prefilter.ESC_MAGIC)
-> 2163 return self.run_line_magic(magic_name, magic_arg_s)
2164
2165 #-------------------------------------------------------------------------
C:\Users\username\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py in run_line_magic(self, magic_name, line)
2082 kwargs['local_ns'] = sys._getframe(stack_depth).f_locals
2083 with self.builtin_trap:
-> 2084 result = fn(*args,**kwargs)
2085 return result
2086
<decorator-gen-126> in dotstr(self, line)
C:\Users\username\Anaconda3\lib\site-packages\IPython\core\magic.py in <lambda>(f, *a, **k)
191 # but it's overkill for just that one bit of state.
192 def magic_deco(arg):
--> 193 call = lambda f, *a, **k: f(*a, **k)
194
195 if callable(arg):
C:\Users\username\Anaconda3\lib\site-packages\IPython\extensions\gvmagic.py in dotstr(self, line)
50 @line_magic
51 def dotstr(self, line):
---> 52 self._from_str(line, 'dot')
53
54 @line_magic
C:\Users\username\Anaconda3\lib\site-packages\IPython\extensions\gvmagic.py in _from_str(self, line, layout_engine)
151 def _from_str(self, line, layout_engine):
152 s = self.shell.ev(line)
--> 153 data = run_graphviz(s, layout_engine)
154 if data:
155 display_svg(data, raw=True)
C:\Users\username\Anaconda3\lib\site-packages\IPython\extensions\gvmagic.py in run_graphviz(s, layout_engine)
30 cmd = ['dot', '-Tsvg', '-K', layout_engine]
31
---> 32 dot = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE)
33 stdoutdata, stderrdata = dot.communicate(s.encode('utf-8'))
34 status = dot.wait()
C:\Users\username\Anaconda3\lib\subprocess.py in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds)
674 c2pread, c2pwrite,
675 errread, errwrite,
--> 676 restore_signals, start_new_session)
677 except:
678 # Cleanup if the child failed starting.
C:\Users\username\Anaconda3\lib\subprocess.py in _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, unused_restore_signals, unused_start_new_session)
953 env,
954 cwd,
--> 955 startupinfo)
956 finally:
957 # Child is launched. Close the parent's copy of those pipe
FileNotFoundError: [WinError 2] The system cannot find the file specified
FileNotFoundError回溯(最近一次调用)
在()
---->1 get_ipython().magic('dotstr dbg')
C:\Users\username\Anaconda3\lib\site packages\IPython\core\interactiveshell.py(self,arg\s)
2161 magic_名称,magic_arg_s=arg_s.分区(“”)
2162 magic_name=magic_name.lstrip(prefilter.ESC_magic)
->2163返回自我。运行幻术(幻术名称,幻术参数)
2164
2165 #-------------------------------------------------------------------------
C:\Users\username\Anaconda3\lib\site packages\IPython\core\interactiveshell.py in run\u line\u magic(self,magic\u name,line)
2082 kwargs['local\u ns']=sys.\u getframe(堆栈深度).f\u locals
2083带自建存水弯:
->2084结果=fn(*args,**kwargs)
2085返回结果
2086
在dotstr中(self,line)
C:\Users\username\Anaconda3\lib\site packages\IPython\core\magic.py in(f,*a,**k)
191#但这一点对国家来说太过分了。
192 def魔术装饰(arg):
-->193调用=λf,*a,**k:f(*a,**k)
194
195如果可调用(arg):
dotstr中的C:\Users\username\Anaconda3\lib\site packages\IPython\extensions\gvmagic.py(self,line)
50@line_magic
51 def dotstr(自身,行):
--->52自我。从第二行开始(点行)
53
54@line_magic
C:\Users\username\Anaconda3\lib\site packages\IPython\extensions\gvmagic.py in\u from\u str(self、line、layout\u引擎)
151 def_来自_str(自身、线路、布局引擎):
152 s=自外壳电动汽车(线路)
-->153数据=运行图(s、布局图、发动机)
154如果数据:
155显示svg(数据,原始=真)
C:\Users\username\Anaconda3\lib\site packages\IPython\extensions\gvmagic.py在run\u graphviz(s,layout\u引擎)中
30 cmd=['dot','-Tsvg','-K',布局引擎]
31
--->32点=Popen(cmd,stdin=PIPE,stdout=PIPE,stderr=PIPE)
33 stdoutdata,stderdata=点通信(s.encode('utf-8'))
34状态=点等待()
C:\Users\username\Anaconda3\lib\subprocess.py in_uuuuuinit_uuuuuuuu(self、args、bufsize、execute、stdin、stdout、stderr、preexec_fn、close_fds、shell、cwd、env、universal_新行、startupinfo、creationflags、restore_信号、start_new_session、pass_fds)
674 c2pread,c2pwrite,
675错误读取,错误写入,
-->676恢复信号,启动新会话)
677除:
678#如果孩子启动失败,则进行清理。
C:\Users\username\Anaconda3\lib\subprocess.py in_execute_child(self、args、execute、preexec_fn、close_fds、pass_fds、cwd、env、startupinfo、creationflags、shell、p2cread、p2cwrite、c2pwrite、errread、errwrite、未使用的恢复信号、未使用的启动新会话)
953环境,
954化学武器,
-->955(创业资讯)
956最后:
957#儿童启动。关闭这些管道的父级副本
FileNotFoundError:[WinError 2]系统找不到指定的文件
您必须在电脑上安装Graphviz软件。例如,对于Windows,请下载此软件
在IPython会话中,您必须指向安装位置,例如:
import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin'
%load_ext gvmagic
dbg = visualize_de_bruijn('ACGCGTCG', 3)
%dotstr dbg
现在它应该对你有用,就像对我一样!您可能可以在PC上设置PATH变量,而不必每次都在IPython内部进行设置。是否安装了
dot
?我恐怕不知道。你知道我怎么检查这个吗?dot
是包还是包中的函数或类?软件包应该位于IPython目录中的什么位置(例如C:\Users\username\Anaconda3\Lib\site packages\IPython
)?注意:我最初使用命令conda install graphvis
安装了graphvis
。我试图使用conda install
安装gvmagic
,但在当前win-64频道中缺少错误包。因此,我使用命令pip install-t'C:\Users\username\Anaconda3\Lib\site packages\IPython\extensions'gvmagic安装了gvmagic
,首先,graphviz
用z
拼写,而不是s
。第二,可从以下网址获得。第三,dot
是与Graphviz一起分发的可执行文件之一,而不是Python包(尽管令人困惑的是,有一个同名的Python包提供了与真正的Graphviz语言的接口)。您应该能够在常规命令提示符(不是Python)下键入dot
,并获得输出。很好地找到了我在编写graphvis
而不是graphviz
时两次输入的字体。
import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin'
%load_ext gvmagic
dbg = visualize_de_bruijn('ACGCGTCG', 3)
%dotstr dbg