Блокнот Jupyter - невозможно импортировать функции Python из других папок - PullRequest
0 голосов
/ 03 мая 2018

У меня есть ноутбук Jupyter, я хочу использовать локальные функции Python из других папок на моем компьютере. Когда я делаю импорт в эти функции, я получаю эту ошибку: «ModuleNotFoundError: нет модуля с именем« xxxxxxxxxxxxx »

  • Я использую анаконду в качестве интерпретатора Python

Ответы [ 3 ]

0 голосов
/ 03 мая 2018

Вы можете добавить путь с помощью sys к вашему локальному файлу модуля / python.

import sys
sys.path.append("/path/to/file/")  # path contains python_file.py

import python_file

Если вы хотите более постоянное решение, добавив модуль к пути Anaconda, см. Предыдущий ответ от cord-kaldemeyer https://stackoverflow.com/a/37008663/7019148. Содержимое, скопированное ниже для полноты:

Я нашел два ответа на свой вопрос на форуме Anaconda:

1.) Поместите модули в site-пакеты, то есть в каталог $ HOME / path / to / anaconda / lib / pythonX.X / site-packages, который всегда включен sys.path. Это также должно работать путем создания символической ссылки.

2.) Добавьте файл .pth в каталог $ HOME / path / to / anaconda / lib / pythonX.X / site-packages. Это можно назвать что угодно (это просто должно заканчиваться на .pth). Файл .pth - это просто разделенный новой строкой список полных путей к каталогам, которые будет добавлен к вашему пути при запуске Python.

Оба работают просто, и я выбрал второй вариант, как есть более гибкий.

*** ОБНОВЛЕНИЕ:

3.) Создайте файл setup.py в папке вашего пакета и установите его, используя команду pip install -e / path / to / package, которая является самой чистой опцией с моей точки зрения, потому что вы также можете увидеть все установки, используя список пипсов.

В любом случае, спасибо!

0 голосов
/ 03 мая 2018

посмотрите, на python 2.7 это будет работать, но на python 3 вы получите некоторые ошибки ...

если вы пишете некоторые функции в другом файле, вам нужно импортировать этот файл. если этот файл в той же папке - это хорошо. но если в подпапке ... в подпапке вам нужно создать пустой файл init .py
и теперь, если вы попробуете импортировать ваш модуль из подфайла - также будет работать

импотент (для питона 3) :
используйте этот код

import os
import sys

sys.path.append(os.getcwd() + '/modules')
import my_module
0 голосов
/ 03 мая 2018

Если вы этого еще не сделали, попробуйте использовать полный путь к функции в вашем коде.

from Folder1.Folder2.FileName import ModuleName

someVar = ModuleName(params)

Folder1 будет папкой в ​​том же каталоге, что и ваша основная программа. Также создайте пустой файл с именем __init__.py в каждой папке, из которой вы импортируете.

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