NOTEBOOK_1:
CELL_1:
Код: Выделить всё
def add(int a, int b):
return a + b
NOTEBOOK_2:
CELL_1:
Код: Выделить всё
%run NOTEBOOK_1
Код: Выделить всё
x, y = 5
print(add(x, y))
Я пробовал это:
NOTEBOOK_1:
CELL_0:
Код: Выделить всё
try:
prep_source_metadata
except NameError:
print("Execution necessary. Proceeding...")
else:
print("Execution unnecessary. Exiting...")
mssparkutils.notebook.exit(1)
Я также нашел этот пост, Как передать переменную в волшебная функция «run» в IPython, где я вставляю переменную в часть %run. Поскольку мне не нужна ошибка, я полагаю, мне придется создать пустой блокнот для версии «не запускать». Я думаю, это сработало бы достаточно хорошо, но было бы совершенно неэлегантно. Есть ли лучший способ?
EDIT1: Что касается комментариев (спасибо!):
- Поскольку я ограничен от Microsoft Fabric, я не могу просто использовать файл .py, мне приходится работать с блокнотами.
- importnb не находит другой блокнот (возможно, это связано с инфраструктурой Microsoft Fabric. ..):
Код: Выделить всё
import importnb
with importnb.Notebook():
from NOTEBOOK_2 import add
Код: Выделить всё
Cell In[7], line 4
1 import importnb
3 with importnb.Notebook():
----> 4 from Gold_Automation_Functions import prep_source_metadata
ModuleNotFoundError: No module named 'Gold_Automation_Functions'
- Запуск другого ноутбука с помощью MSSparkUtils не работает, поскольку пространство имен не является общим (или, как вы это правильно описываете, это «NameError: имя 'my_function' не является определено")
EDIT2: Наиболее многообещающим способом на данный момент является использование . whl (https://learn.microsoft.com/en-us/fabri ... ge-library).
Подробнее здесь: https://stackoverflow.com/questions/786 ... k-with-run