Главная » Просмотр файлов » Лутц М. - Изучаем Python

Лутц М. - Изучаем Python (1077325), страница 105

Файл №1077325 Лутц М. - Изучаем Python (Лутц М. - Изучаем Python) 105 страницаЛутц М. - Изучаем Python (1077325) страница 1052018-01-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 105)

Фактически, допускается указывать лишь простые имена— путь к каталогу и расширение Файла должны быть опущены, потому что для поиска файла, соответствующего имени, указанному в инструкции (зрогт, интерпретатор использует стандартный лулть поиска модулей.' Поскольку это основная часть операции импорта, которую необходимо знать программистам, мы рассмотрим ее более подробно.

Путь поиска модулей В большинстве случаев можно положиться на автоматически организованные пути поиска модулей и вообще не настраивать этот путь. Однако, если вам потребуется импортировать модули из пользовательских каталогов, вам необходимо будет знать, как работает путь поиска Файлов, чтобы настроить его соответствующим образом. В общих чертах пути поиска модулей в языке Рустов выбираются из объединенных В действительности синтаксис стацаартной инструкции зеро гт не позволяет включать путь к файлу н его расширение. Длн операции имнортпированин накентов, которая будет рассматриваться в главе 20, инструкция тврогт допускает указывать путь к файлу в виде последовательности имен, разделенных точкой; но при этом операция импортирования пакетов по-прежнему использует обычный путь поиска модулей, чтобы отыскать самый первый каталог в указанном пути к пакету (то есть пути к пакетам указываются относительно одного из каталогов, находящегося в пути поиска).

Кроме того, зта операция не позволяет использовать в инструкции тзрогт синтаксис путей к каталогам, характерный для определенной платформы, — этот синтаксис может использоваться только при определении самого пути поиска. Следует также заметить, что проблемы поиска пути к файлам модулей отсутствуют прн запуске фиксированных двоичных файлов (рассматривалнсь в главее 2); онн обычно содержат в двоичном образе весь необходимый байт-код.

Глава 18. Модули; общая картина данных следующих основных источников. Некоторые из них предопределены, а некоторые можно настроить и тем самым сообщить интерпретатору, где выполнять поиск: 1. Домашний каталог программы. 2. Содержимое переменной окружения РУТНОИРАТН (если таковая определена).

3. Каталоги стандартной библиотеки. 4. Содержимое любых файлов с расширением .рлг (если таковые имеются). В конечном итоге объединение этих четырех компонентов составляет вув. ратя — список строк с именами каталогов, о котором я расскажу подробнее в следующем разделе. Первый и третий компоненты пути поиска определяются автоматически, но, так как интерпретатор при поиске использует данные всех этих компонентов, от первого до последнего, то второй и четвертый компоненты можно использовать для расширения пути поиска, включая в него свои собственные каталоги с исходными текстами.

Далее описывается, как интерпретатор Рубанов использует эти компоненты пути: Домашний каталог В первую очередь интерпретатор ищет импортируемые файлы в домашнем каталоге. В зависимости от того, как была запущена программа, это будет либо каталог, где находится главный файл программы, либо каталог, из которого вы работаете в интерактивной оболочке.

Поскольку поиск в первую очередь производится в этом каталоге, если программа целиком располагается в одном каталоге, все операции импорта будут выполнены автоматически, без необходимости настраивать путь поиска. Каталоги в РУТНОИРАТН После этого поиск производится во всех каталогах, перечисленных в переменной окружения РУТНОИРАТН, слева направо (если эта переменная вообще установлена). В двух словах, переменная окружения РУТНОИРАТН вЂ” это просто список имен каталогов, определяемых пользователем и системой, в которых располагаются файлы с программным кодом на языке Рув)юп. Вы можете добавить в эту переменную все каталоги, откуда предполагается импортировать модули, и интерпретатор будет использовать ваши настройки при создании пути поиска модулей.

Поскольку интерпретатор пытается отыскать файлы сначала в домашнем каталоге, настройка этой переменной приобретает большое значение, только когда необходимо импортировать модули, размещающиеся в разных каталогах, — то есть когда импортируемый файл хранится в каталоге, отличном от каталога, где располагается импортирующий файл. Вам наверняка потребуется настраивать переменную окружения РУТНОИРАТН, как только вы начнете писать Как работает импорт 493 большие программы, но на начальном этапе освоения языка храните файлы всех своих модулей в каталоге, в котором вы работаете (то есть в домашнем каталоге), и тогда операции импорта будут работать без необходимости выполнять какие-либо настройки.

Каталоги стандартной библиотеки Далее интерпретатор автоматически выполняет поиск в каталогах, куда были установлены модули стандартной библиотеки. Так как эти каталоги всегда участвуют в поиске, их можно не добавлять в переменную окружения РУТНОНРАТН. Каталоги в Файле .ргЬ Наконец, относительно новая особенность языка Ругйоп дает пользователям возможность добавлять нужные каталоги в путь поиска модулей, просто перечисляя их по одному в строке в текстовом файле, имя которого оканчивается расширением .ргЬ (от слова «ра1)т»вЂ” «путь»). Эти файлы представляют собой расширенную возможность, имеющую отношение к проблеме установки, и мы не будем здесь подробно их обсуждать.

Текстовый файл со списком каталогов помещается в соответствующий каталог и может играть примерно ту же роль, что и переменная окружения РУТНОНРАТН. Например, для расширения пути поиска модулей файл с именем туганов(ур1Ь можно поместить в главный каталог, куда был установлен Рубанов в ТАЧпбо»чв (например, С:'~ругйоп25 или С:~ругйоп25~ИЬ\з(герасйауез).

Интерпретатор добавит в конец пути поиска модулей каталоги, перечисленные во всех строках файла, от первой до последней. Поскольку это файлы, а не параметры настройки командной оболочки, они могут применяться ко всем пользователям системы, а не только к одному пользователю или одной командной оболочке. Эта особенность на практике более сложная, чем я описал. За дополнительной информацией обращайтесь к руководству по библиотеке языка Ру»)топ (в частности, к описанию модуля з!ге, входящего в стандартную библиотеку). Начинающим я рекомендую использовать переменную окружения РУТНОНРАТН или единственный файл .ргЬ и только в том случае, если возникает необходимость импортировать файлы из других каталогов.

В приложении А вы найдете примеры наиболее распространенных способов расширения пути поиска файлов с помощью переменной окружения РУТНОНРАТН или файлов .ргЬ на различных платформах. Это описание пути поиска модулей является верным, но достаточно общим, — точная конфигурация пути поиска зависит от типа платформы и версии Ру1поп.

В зависимости от используемой платформы в путь поиска модулей могут добавляться дополнительные каталоги. Например, в путь поиска вслед за каталогами из переменной окружения РУТНОНРАТН и перед каталогами стандартной библиотеки, интерпретатор может добавлять текущий рабочий каталог — каталог, откуда 494 Глава 1В. Модули: общая картина была запущена программа. Когда программа запускается из командной строки, текущий рабочий каталог может не совпадать с домашним каталогом, где находится главный файл программы (то есть с каталогом, где находится программа).' Так как от запуска к запуску программы текущий рабочий каталог может изменяться, при обычных условиях рабочий каталог не должен иметь значения для операций импорта.' Список буй.раФ Если вам потребуется узнать, как выглядит путь поиска на вашей машине, вы всегда сможете сделать это, просмотрев содержимое встроенного списка эуз, рзтп (то есть содержимое атрибута ра1Ь модуля зуз, входящего в состав стандартной библиотеки).

Этот список строк с именами каталогов представляет собой фактический путь поиска, используемый интерпретатором, — при выполнении операций импорта Ру1Ьоп просматривает каждый каталог из списка, слева направо. Действительно, зуз,рзтл — это путь поиска модулей. Интерпретатор создает его во время запуска программы, автоматически объединяя в список все каталоги, перечисленные в переменной окружения РТТНОНРАТН и в файлах .р(Ь, и добавляя в начало списка домашний каталог главного файла программы (возможно как пустую строку). Представление языком РуФЬоп этого списка имеет два основных полезных результата.

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

Как будет показано далее в этой части книги, изменяя список зуз. рзтя, вы можете изменить путь поиска для всех последующих операций импорта. Однако эти изменения продолжают действовать, только пока выполняется сценарий; переменная окружения РУТНОНРАТН и файлы .рта обеспечивают возможность более долговременного хранения измененного пути.' Подробнее о запуске программ нз командной строки говорится в главе 3. В главе 21 дополнительно обсуждается относительно новый синтаксис инструкции имлортирования, добавленный в версии РутЬол 2.5, — благодаря ему можно изменять путь поиска а инструкции Г гон с помощью символов «. » (напрнмер, тгоа .

тарогт ятг1пр). Некоторым программам действительно требуется изменять эуз. ратЬ. Сценарии, которые выполняются на веб-сервере, например, обычно выполняются с привилегиями пользователя «поЬог)у» с целью ограничить доступ к системе. Поскольку такие сценарии обычно не должны зависеть от значения переменной окружения РУТНОНРЯТН для пользователя «лоЬог»у», они часто изменяют список пуз, ратп вручную, чтобы включить в него необходимые каталоги до того, как будет выполнена какая-либо инструкция тарогт. Обычно для этого бывает достаточно вызова зуэ. Рата, аррепс(о»глазе). Как работает импорт 495 Выбор файла модуля Имейте в виду, что расширения имен файлов (например, .ру) преднамеренно опущены в инструкции 1ерогт.

Интерпретатор выбирает первый найденный в пути поиска файл, который соответствует указанному имени. Например, инструкция 1зрогт Ь могла бы загрузить: ° Файл с исходным текстом, имеющий имя Ь.ру. ° Файл с байт-кодом, имеющий имя Ь рус. ° Содержимое каталога Ь. при импортировании пакета (описывается в главе 20). ° Скомпилированный модуль расширения, как правило, написанный на языке С или С++ и динамически присоединенный при импорте (например, Ь.зо в 1 1пих и Ь.ЮИ или Ь.руд в Суятч1п и в т(т(пт)втуз).

° Скомпилированный встроенный модуль, написанный на языке С и статически скомпонованный с интерпретатором Ру()топ. ° Файл 21Р-архива с компонентом, который автоматически извлекается при импорте. ° Образ памяти для фиксированных двоичных исполняемых файлов. ° Класс дауа в версии Лу()топ. ° Компонент .НЕТ в версии 1гопРу1)топ.

Характеристики

Тип файла
DJVU-файл
Размер
11,21 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6363
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее