সমস্যাটি হ'ল নোটবুকগুলি একটি সরল পাইথন ফাইল নয়। .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