Я пытаюсь разработать блокнот Jupyter, включающий ячейки с командой% load magic для загрузки кода из другого места. Этот код не находится в той же директории, где находится ноутбук. Я хочу, чтобы это работало в Windows, Linux и Mac, поэтому разделители пути иногда должны быть '\', а иногда '/'.
Обычно я решал бы это, используя os.path.join. Тем не менее, когда я делаю это в соответствии с командой load, ноутбук просто оценивает путь и фактически не загружает код. Есть ли способ сделать это, кроме как сначала просто изменить рабочий каталог и вернуть его обратно после выполнения загруженного мной кода?
Краткий пример:
import os
%load os.path.join('example', 'file.py')
Это выдает ошибку, поскольку фактически будет искать файл с именем os.path.join ('example', 'file.py'). Если я сначала оцениваю это и помещаю результат в нагрузку, я получаю:
import os
to_include = os.path.join('example', 'file.py')
print(to_include)
%load to_include
Это оценивается как
# %load to_include
example/file.py
Но, очевидно, я хочу, чтобы содержимое этого файла загружалось, а не путь + имя файла. Что я делаю не так?