मुद्दा यह है कि नोटबुक एक सादा अजगर फ़ाइल नहीं है। .ipynb
फ़ाइल आयात करने के चरण निम्नलिखित में उल्लिखित हैं: नोटबुक आयात करना
मैं कोड चिपका रहा हूं, इसलिए यदि आपको इसकी आवश्यकता है ... तो आप बस एक त्वरित कॉपी और पेस्ट कर सकते हैं। ध्यान दें कि अंत में मेरा import primes
कथन है। आपको इसे बदलना होगा। मेरी फ़ाइल का नाम हैprimes.ipynb
। इस बिंदु से आप उस फ़ाइल के अंदर की सामग्री का उपयोग कर सकते हैं जैसा कि आप नियमित रूप से करते हैं।
काश एक सरल विधि होती, लेकिन यह डॉक्स से सीधी है।
नोट: मैं ज्यूपिटर का उपयोग कर रहा हूं न कि आईपीथॉन का।
import io, os, sys, types
from IPython import get_ipython
from nbformat import current
from IPython.core.interactiveshell import InteractiveShell
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
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)
with io.open(path, 'r', encoding='utf-8') as f:
nb = current.read(f, 'json')
mod = types.ModuleType(fullname)
mod.__file__ = path
mod.__loader__ = self
mod.__dict__['get_ipython'] = get_ipython
sys.modules[fullname] = mod
save_user_ns = self.shell.user_ns
self.shell.user_ns = mod.__dict__
try:
for cell in nb.worksheets[0].cells:
if cell.cell_type == 'code' and cell.language == 'python':
code = self.shell.input_transformer_manager.transform_cell(cell.input)
exec(code, mod.__dict__)
finally:
self.shell.user_ns = save_user_ns
return mod
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:
key = os.path.sep.join(path)
if key not in self.loaders:
self.loaders[key] = NotebookLoader(path)
return self.loaders[key]
sys.meta_path.append(NotebookFinder())
import primes