当前位置:网站首页>Call (import) in Jupiter notebook ipynb . Py file
Call (import) in Jupiter notebook ipynb . Py file
2022-07-08 01:24:00 【Bosong】
Catalog
(1) preservation XX.ipynb file
(2) establish Ipynb_importer.py file
(3) Where the main function is created .ipynb file
In order to ensure the simplicity and good scalability of the code , Instead of a file filled with hundreds of lines of code, I moved myself , It's better to divide the detachable part into several documents for later understanding by yourself and others .
1. call XX.py file
Guarantee XX.py Files and operation files are in one directory , Then in the operation file import XX( perhaps from XX import *), Then call XX Functions you need in func Or class class——XX.func()( perhaps func()).
2. call XX.ipynb file
2.1 direct method
hold XX.ipynb Derivation .py file (File– download as– Python(.py)), reference 1. Medium method , call .
Applicable conditions : call 1 individual or No more than 3 individual .ipynb file
2.2 indirect method
(1) preservation XX.ipynb file
(2) establish Ipynb_importer.py file
The code is as follows :
import io, os,sys,types
from IPython import get_ipython
from nbformat import read
from IPython.core.interactiveshell import InteractiveShell
# The main class
class NotebookFinder(object):
"""Module finder that locates Jupyter Notebooks"""
def __init__(self):
self.loaders = {}
def find_module(self, fullname, path=None):
nb_path = find_notebook(fullname, path)
if not nb_path:
return
key = path
if path:
# lists aren't hashable
key = os.path.sep.join(path)
if key not in self.loaders:
self.loaders[key] = NotebookLoader(path)
return self.loaders[key]
def find_notebook(fullname, path=None):
"""find a notebook, given its fully qualified name and an optional path
This turns "foo.bar" into "foo/bar.ipynb"
and tries turning "Foo_Bar" into "Foo Bar" if Foo_Bar does not exist."""
name = fullname.rsplit('.', 1)[-1]
if not path:
path = ['']
for d in path:
nb_path = os.path.join(d, name + ".ipynb")
if os.path.isfile(nb_path):
return nb_path
# let import Notebook_Name find "Notebook Name.ipynb"
nb_path = nb_path.replace("_", " ")
if os.path.isfile(nb_path):
return nb_path
class NotebookLoader(object):
"""Module Loader for Jupyter Notebooks"""
def __init__(self, path=None):
self.shell = InteractiveShell.instance()
self.path = path
def load_module(self, fullname):
"""import a notebook as a module"""
path = find_notebook(fullname, self.path)
print ("importing Jupyter notebook from %s" % path)
# load the notebook object
with io.open(path, 'r', encoding='utf-8') as f:
nb = read(f, 4)
# create the module and add it to sys.modules
# if name in sys.modules:
# return sys.modules[name]
mod = types.ModuleType(fullname)
mod.__file__ = path
mod.__loader__ = self
mod.__dict__['get_ipython'] = get_ipython
sys.modules[fullname] = mod
# extra work to ensure that magics that would affect the user_ns
# actually affect the notebook module's ns
save_user_ns = self.shell.user_ns
self.shell.user_ns = mod.__dict__
try:
for cell in nb.cells:
if cell.cell_type == 'code':
# transform the input to executable Python
code = self.shell.input_transformer_manager.transform_cell(cell.source)
# run the code in themodule
exec(code, mod.__dict__)
finally:
self.shell.user_ns = save_user_ns
return mod
# Call the main function
sys.meta_path.append(NotebookFinder())Just put it in our working directory Ipynb_importer.py file , You can call all jupyter notebook file .
The essence of this method is to use a jupyter notenook The parser checks .ipynb File parsing , Load each module in the file into memory for others python A file called .
(3) Where the main function is created .ipynb file
import Ipynb_importer
from XX import *Applicable conditions : Call multiple .ipynb file
.ipynb It still takes some trouble to call files of the same type , But now that I have chosen TA, Mostly for TA Don't you think it's better to spend some time TA Love >_<
Ha ha ha , Finish the above sentence , Suddenly realize that today is also Valentine's day —— Take care of what you love , Accompany your loved ones , May everyone find that TA, Happy Valentine's Day **ヽ(°▽°)ノ*
边栏推荐
- Leetcode notes No.21
- 2021-03-14 - play with generics
- Use "recombined netlist" to automatically activate eco "APR netlist"
- 3、多智能体强化学习
- Using GPU to train network model
- Scheme selection and scheme design of multifunctional docking station for type C to VGA HDMI audio and video launched by ange in Taiwan | scheme selection and scheme explanation of usb-c to VGA HDMI c
- 2022 chemical automation control instrument examination summary and chemical automation control instrument simulation examination questions
- 跨模态语义关联对齐检索-图像文本匹配(Image-Text Matching)
- Design method and application of ag9311maq and ag9311mcq in USB type-C docking station or converter
- String usage in C #
猜你喜欢

5. Contrôle discret et contrôle continu

Smart grid overview

2022 safety officer-c certificate examination summary and safety officer-c certificate reexamination examination

2022 chemical automation control instrument examination summary and chemical automation control instrument simulation examination questions

Four digit nixie tube display multi digit timing

4、策略學習

Transportation, new infrastructure and smart highway

USB type-C mobile phone projection scheme | USB type-C docking station scheme | TV / projector type-C converter scheme | ag9300ag9310ag9320

2022 high voltage electrician examination skills and high voltage electrician reexamination examination

4. Apprentissage stratégique
随机推荐
Su embedded training - C language programming practice (implementation of address book)
2022 examination for safety production management personnel of hazardous chemical production units and new version of examination questions for safety production management personnel of hazardous chem
How to use education discounts to open Apple Music members for 5 yuan / month and realize member sharing
4、策略学习
Know how to get the traffic password
3、多智能体强化学习
4. Cross entropy
5、離散控制與連續控制
Leetcode notes No.7
On the concept and application of filtering in radar signal processing
General configuration tooltip
Kaptcha generates verification code on Web page
Leetcode notes No.21
130. 被圍繞的區域
5. Discrete control and continuous control
Complete model verification (test, demo) routine
C# ?,?.,?? .....
2021-03-06 - play with the application of reflection in the framework
Kuntai ch7511b scheme design | ch7511b design EDP to LVDS data | pin to pin replaces ch7511b circuit design
2022 free test questions of fusion welding and thermal cutting and summary of fusion welding and thermal cutting examination