В Jupyter Notebook, как лучше всего выполнить функцию из другого ноутбука? - PullRequest
0 голосов
/ 11 марта 2020

Я новичок в ноутбуках Jupyter и использую установку Anaconda для Python 3.7. Каков наилучший способ выполнить функцию из другого ноутбука? Я нашел этот 2-летний ответ здесь , но я не знаю, есть ли новый / лучший способ сделать это с помощью установки Anaconda (nbimporter должен быть установлен отдельно, он не в Anaconda ).

Вот код / ​​информация в записных книжках:

Попытка № 1 (ошибка)

# working directory files:
# mytest.ipynb # this contains the function I am trying to call
# Untitled.ipynb # this is the Notebook I am working in


# mytest.ipynb contents:
def testfcn(x):
    return print("input is", str(x))


# Untitled.ipynb contents:
from mytest import testfcn
testfcn(4)

ModuleNotFoundError: No module named 'mytest'

Попытка # 2 (хорошо, не идеально)

# Untitled.ipynb contents:

%run mytest.ipynb
testfcn(4)

# returns this, extra stuff:
0.019999999999999997
<class 'float'>
input is 4

1 Ответ

0 голосов
/ 12 марта 2020

Обсуждение здесь включает комментарий MEdwin о том, как запустить другую записную книжку изнутри вашей, и тогда вы сможете вызывать функции другой записной книжки в блокноте заметок, где вы запускали * 1003. * step.
Обновление: Я только что натолкнулся на проект subnotebook , который позволяет вам запускать блокнот, как если бы вы вызывали функцию Python, передавали параметры и возвращали результаты, включая вывод содержимого. Может быть полезно в этом контексте. КОНЕЦ ОБНОВЛЕНИЯ.

Кроме того, для Python функций вы не хотите выполнять return print. Вы либо удалите return и оставите часть print, либо вернете строку, которую сможете распечатать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...