Запутался, как импортировать модули в python - PullRequest
0 голосов
/ 02 августа 2010

Если я хочу использовать сторонний модуль, такой как модуль Python S3 (boto http://boto.s3.amazonaws.com/index.html) или http://developer.amazonwebservices.com/connect/entry.jspa?externalID=134.

Что мне делать после загрузки файлов .py?

Где выглядит интерпретатор python, когда я импортирую модуль?

Существует ли «легкий» способ установки модуля, который упрощает развертывание на сервере?

Ответы [ 2 ]

1 голос
/ 02 августа 2010

Посмотрите оператор импорта ссылка , длинное и сложное описание. Простой способ - указать местоположение модуля в sys.path.

Я цитирую только начальный абзац:

Как только имя модуля известно (если не указано иное, термин «модуль» будет относиться как к пакетам, так и к модулям), можно начинать поиск модуля или пакета. Первое проверенное место - sys.modules, кэш всех модулей, которые были импортированы ранее . Если модуль найден там, он используется на шаге (2) импорта.

Если модуль не найден в кеше, , тогда sys.meta_path ищется (спецификацию sys.meta_path можно найти в PEP 302). Объект представляет собой список объектов поиска, которые запрашиваются, чтобы узнать, знают ли они, как загрузить модуль, вызвав их метод find_module() с именем модуля. Если модуль находится внутри пакета (что обозначается наличием точки в имени), то второй аргумент для find_module () задается как значение атрибута path от родительского элемента пакет (все до последней точки в имени импортируемого модуля). Если искатель может найти модуль, он возвращает загрузчик (обсуждается позже) или возвращает None.

Если ни один из искателей на sys.meta_path не может найти модуль, то запрашиваются некоторые неявно определенные искатели. Реализации Python варьируются в зависимости от того, какие неявные мета пути найдены. Однако все они определяют, что обрабатывает sys.path_hooks, sys.path_importer_cache и sys.path.

0 голосов
/ 02 августа 2010

Он выглядит в каталоге, из которого вы сейчас работаете. Например, если вы пытаетесь импортировать его изнутри /test/my_file.py, вы можете поместить модуль в /test/ и просто import module_name

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