Форум сайта python.su
Всем привет, ситуация следующая:
Есть структура каталогов следующего типа:
–run.py
—-folder1
—-script1.py
—-script2.py
…
В скрипте run.py я импортирую функцию automate() из модуля script1.py
В скрипте script1.py я импортирую модуль scripte2.py
Когда запуская run.py вижу, что питон не может импортировать scripte2.py.
Соответственно, если я запускаю scripte1.py из папки, модуль scripte2 нормально импортируется.
Как я понял питон пытается искать модуль script2.py в папке run.py и не находит, как решить проблему не экспортируя модули в libs?
Пробовал прописать в run.py
path = os.path.abspath('\folder1')
sys.path.append(path)
Не помогло…
Версия питона 3.4
Отредактировано Oleg1285 (Дек. 17, 2013 12:21:05)
Офлайн
Спуститься на уровень ниже можно, прописывая перед файлом две точки и слэш ('../example.txt')
Офлайн
Я проверял переменную sys.path путь прописывается нормально.
с вариантом os.path.abspath('../folder1') эффект тот же самый - модуль script2.py не подгружается.
Офлайн
Во-первых, в папке с модулями должен быть пустой файл __init__.py
Во-вторых, надо указывать импорт с учётом названия каталога
Офлайн
c __init__ файлом тоже пробовал.
Импорт прописываю как раз с указанием каталога from folder1.script1 import automate
Модуль то импортируется, проблема в том, что сам script1 перестает импортировать script2.
Отредактировано Oleg1285 (Дек. 17, 2013 11:17:02)
Офлайн
есть идеи?
Офлайн
в третем питоне по умолчанию абсолютный импорт
из той же папки импортируй так
import .script2
Офлайн
А Вы не путаете 2-й питон с 3-м? что-то я в 3-м такой записи не встречал, если сделать такую запиcь то получим SyntaxError
Я имею ввиду запись .script2 с точкой, у меня пропиcанно просто import script2
Отредактировано Oleg1285 (Дек. 17, 2013 12:23:13)
Офлайн
да затупил, надо
from .module import staff
Офлайн
bismigalis
from .module import staff
Офлайн