Ця проблема виникає через те, як командний рядок інтерпретатор IPython використовує ваш поточний шлях порівняно з тим, як робить окремий процес (будь то ноутбук IPython, зовнішній процес тощо). IPython шукатиме модулі для імпорту, які знаходяться не лише у вашому sys.path, але і у вашому поточному робочому каталозі. Коли запускаєте інтерпретатора з командного рядка, поточний каталог, в якому ви працюєте, є тим самим, у якому ви запустили ipython. Якщо ви запускаєте
import os
os.getcwd()
ви побачите, що це правда.
Однак, скажімо, ви використовуєте ноутбук ipython, запустіть, os.getcwd()
а ваш поточний робочий каталог замість цього є папкою, з якої ви повідомили, що ноутбук працює у вашому файлі ipython_notebook_config.py (як правило, використовуючи c.NotebookManager.notebook_dir
налаштування).
Рішення полягає у наданні інтерпретатору python шлях до вашого модуля. Найпростіше рішення - додати цей шлях до вашого списку sys.path. Спершу спробуйте у своєму блокноті:
import sys
sys.path.append('my/path/to/module/folder')
import module-of-interest
Якщо це не працює, у вас виникає інша проблема на руках, не пов’язана з способом імпорту, і вам слід надати більше інформації про свою проблему.
Кращий (і більш постійний) спосіб вирішити це - встановити ваш PYTHONPATH , який надає інтерпретатору додаткові каталоги для пошуку пакунків / модулів python. Редагування або встановлення PYTHONPATH як глобальної вар залежить від цього, і тут докладно розглядається для Unix або Windows .