Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 5, 2014 09:11:29

koluna
Зарегистрирован: 2014-07-08
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск модулей при импортировании

Привет!

Расскажите, пожалуйста, про то, как Питон ищет модули (и пакеты), когда встречает директиву импорта.

Подскажите, пожалуйста, как быть в следующей ситуации.
Есть скрипт, который использует некий пакет (пакет находится в отдельном каталоге рядом со скриптом).
При запуске скрипта Питон не находит импортируемый модуль (пакет).
Если скрипт скопировать в каталог пакета, то все нормально, но это неправильно…

Пакет без инсталлятора.
Как лучше поступить? Скопировать пакет в системный каталог Питона?
Хочу, чтобы пакет распространялся вместе со скриптом.

Офлайн

#2 Дек. 5, 2014 10:00:22

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Поиск модулей при импортировании

у вас должна быть такая структура:

основной_каталог_со всем/
__init__.py
ваша_программа.py
директория_с_модулем/
__init__.py
ваш_модуль.py
тогда в программе пишите так:
import директория_с_модулем.ваш_модуль
например
import directory.modul
а для использования пишите так:
directory.modul.function(что_то_там передаете)
или можно так подключить модуль
from directory.modul import function
тогда просто
function(что_то_там_передаем)
в файах __init__.py можно ничего не писать



————————————————
-*- Simple is better than complex -*-

Офлайн

#3 Дек. 6, 2014 11:53:52

koluna
Зарегистрирован: 2014-07-08
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск модулей при импортировании

Файлы __init__.py необходимы для того, чтобы Python трактовал эти каталоги как содержащие пакеты?
Т. е., эти файлы обязательно должны быть?

Офлайн

#4 Дек. 6, 2014 13:04:28

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Поиск модулей при импортировании

Файлы __init__.py необходимы для того, чтобы Python трактовал эти каталоги как содержащие пакеты.
это не вопрос, это утверждение!

koluna
Т. е., эти файлы обязательно должны быть?
да



————————————————
-*- Simple is better than complex -*-

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version