如何解决%run 在 Jupyter Notebook 中只工作一次
我在同一个文件夹中打开了两个 Jupyter 笔记本:functions.ipynb
和 preprocessing.ipynb
。
在 functions.ipynb
中,我定义了一系列函数,我将在另一个函数中调用这些函数。
在 preprocessing.ipynb
的第一个单元格中执行
%run 'functions.ipynb'
它工作得很好。但是,如果我再次运行同一个单元格,则会出现此错误:
---------------------------------------------------------------------------
OSError Traceback (most recent call last)
~/anaconda3/envs/tensorflow2_p36/lib/python3.6/site-packages/IPython/core/magics/execution.py in run(self,parameter_s,runner,file_finder)
696 fpath = arg_lst[0]
--> 697 filename = file_finder(fpath)
698 except IndexError:
~/anaconda3/envs/tensorflow2_p36/lib/python3.6/site-packages/IPython/utils/path.py in get_py_filename(name,force_win32)
108 else:
--> 109 raise IOError('File `%r` not found.' % name)
110
OSError: File `'functions.ipynb.py'` not found.
During handling of the above exception,another exception occurred:
Exception Traceback (most recent call last)
<ipython-input-2-330907dc0fe2> in <module>
----> 1 get_ipython().run_line_magic('run',"'functions.ipynb'")
~/anaconda3/envs/tensorflow2_p36/lib/python3.6/site-packages/IPython/core/interactiveshell.py in run_line_magic(self,magic_name,line,_stack_depth)
2324 kwargs['local_ns'] = sys._getframe(stack_depth).f_locals
2325 with self.builtin_trap:
-> 2326 result = fn(*args,**kwargs)
2327 return result
2328
<decorator-gen-59> in run(self,file_finder)
~/anaconda3/envs/tensorflow2_p36/lib/python3.6/site-packages/IPython/core/magic.py in <lambda>(f,*a,**k)
185 # but it's overkill for just that one bit of state.
186 def magic_deco(arg):
--> 187 call = lambda f,**k: f(*a,**k)
188
189 if callable(arg):
~/anaconda3/envs/tensorflow2_p36/lib/python3.6/site-packages/IPython/core/magics/execution.py in run(self,file_finder)
706 if os.name == 'nt' and re.match(r"^'.*'$",fpath):
707 warn('For Windows,use double quotes to wrap a filename: %run "mypath\\myfile.py"')
--> 708 raise Exception(msg)
709 except TypeError:
710 if fpath in sys.Meta_path:
Exception: File `'functions.ipynb.py'` not found.
我真的不明白为什么这段代码只运行一次。
我在 Amazon SageMaker 中使用 Python 3.6
解决方法
不看这两个文件的内容很难回答,但我猜 functions.ipynb
更改了当前工作目录,这会中断第二次运行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。