Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 17, 2013 10:19:39

Oleg1285
Зарегистрирован: 2013-10-04
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с импортом модулей

Всем привет, ситуация следующая:

Есть структура каталогов следующего типа:
–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)

Офлайн

#2 Дек. 17, 2013 10:31:00

Razor
Зарегистрирован: 2012-09-11
Сообщения: 127
Репутация: +  2  -
Профиль   Отправить e-mail  

Проблема с импортом модулей

Спуститься на уровень ниже можно, прописывая перед файлом две точки и слэш ('../example.txt')

Офлайн

#3 Дек. 17, 2013 10:51:28

Oleg1285
Зарегистрирован: 2013-10-04
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с импортом модулей

Я проверял переменную sys.path путь прописывается нормально.
с вариантом os.path.abspath('../folder1') эффект тот же самый - модуль script2.py не подгружается.

Офлайн

#4 Дек. 17, 2013 11:01:50

Master_Sergius
Зарегистрирован: 2013-09-12
Сообщения: 271
Репутация: +  7  -
Профиль   Отправить e-mail  

Проблема с импортом модулей

Во-первых, в папке с модулями должен быть пустой файл __init__.py
Во-вторых, надо указывать импорт с учётом названия каталога



———————————————————————————
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

Офлайн

#5 Дек. 17, 2013 11:05:24

Oleg1285
Зарегистрирован: 2013-10-04
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с импортом модулей

c __init__ файлом тоже пробовал.
Импорт прописываю как раз с указанием каталога from folder1.script1 import automate
Модуль то импортируется, проблема в том, что сам script1 перестает импортировать script2.

Отредактировано Oleg1285 (Дек. 17, 2013 11:17:02)

Офлайн

#6 Дек. 17, 2013 11:25:39

Oleg1285
Зарегистрирован: 2013-10-04
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с импортом модулей

есть идеи?

Офлайн

#7 Дек. 17, 2013 11:31:31

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Проблема с импортом модулей

в третем питоне по умолчанию абсолютный импорт

из той же папки импортируй так

import .script2

Офлайн

#8 Дек. 17, 2013 11:44:43

Oleg1285
Зарегистрирован: 2013-10-04
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с импортом модулей

А Вы не путаете 2-й питон с 3-м? что-то я в 3-м такой записи не встречал, если сделать такую запиcь то получим SyntaxError
Я имею ввиду запись .script2 с точкой, у меня пропиcанно просто import script2

Отредактировано Oleg1285 (Дек. 17, 2013 12:23:13)

Офлайн

#9 Дек. 17, 2013 12:25:41

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Проблема с импортом модулей

да затупил, надо

from .module import staff

Офлайн

#10 Дек. 17, 2013 13:12:05

Oleg1285
Зарегистрирован: 2013-10-04
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с импортом модулей


bismigalis
from .module import staff

спасибо, теперь все нормально импортируется.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version