Модули и пакеты Python с использованием ноутбука Jupyter в Google Cloud Platform - PullRequest
0 голосов
/ 28 августа 2018

Я использую ноутбуки Jupyter в Google CloudDatalab в Google Cloud Platform для своих скриптов Python. Это создает .ipynb файлов.

Я хочу иметь возможность создавать модули и пакеты, используя блокноты Jupyter, но он не может импортировать сценарии.

Например ::1007 *

mymodule.ipynb имеет это:

def test_function():
    print("Hello World")

Затем в myscript.ipynb , когда я пытаюсь импортировать выше:

from mymodule import test_function

Выдает ошибку:

* ImportErrorTraceback (последний последний вызов) в ()

----> 1 из mymodule import test_function ImportError: Нет модуля с именем mymodule *

Как создавать модули и пакеты с помощью ноутбуков Jupyter?

Ответы [ 3 ]

0 голосов
/ 28 августа 2018

Вы не можете импортировать Jupyter Notebook так же, как файлы (пакеты) Python.

Проверьте эту ссылку: https://jupyter -notebook.readthedocs.io / en / stable / examples / Notebook / Importing% 20Notebooks.html

0 голосов
/ 30 августа 2018

Я получил ответ на другом форуме, который ответил на мой вопрос. Вот ответ:

Поместите код вашего модуля в файл .py и убедитесь, что он находится в том же каталоге, что и myscript.ipynb. Чтобы создать файл .py из кода, который в настоящее время находится в записной книжке, вы можете загрузить его из Jupyter в виде файла .py и привести его в порядок в своем текстовом редакторе. Помните, оператор import - это чистый синтаксис Python. Он ничего не знает и не хочет ничего знать о ноутбуках Jupyter. Он ищет файл .py.

Это решило проблему.

Большое спасибо.

0 голосов
/ 28 августа 2018

Ноутбуки нельзя использовать в качестве модулей. Вам необходимо создать файл Python (например, mymodule.py).

Если вы хотите, вы можете сделать это в блокноте Jupyter:

with open('mymodule.py', 'w') as f:
    f.write('def test_function():')
    f.write('    print("Hello World")')

from mymodule import test_function
test_function()
# Hello World
...