Как стать автором
Обновить
2
0

Пользователь

Отправить сообщение

О порядке поиска пакетов и модулей для импорта в Python

Время на прочтение5 мин
Количество просмотров59K
Начать, видимо, следует с того, что речь пойдет об интерпретаторе CPython версии 2.7.x (примеры проверялись на версии 2.7.3).

На официальном сайте имеются описания инструкции import и модулей в Python:

Из них следует, что в Python имеются пакеты (package), модули (module) и имена, определенные в модулях (names). Также следует отметить, что в некоторых частях документации модули называются подмодулями (submodule), если они размещены внутри пакета.

В языке Python инструкция import позволяет импортировать пакеты, модули и имена в пространство имен, в котором инструкция import выполняется. При это существует две интересные особенности:
  1. Из синтаксиса инструкции import не всегда явно следует, что именно должно быть импортированно: пакет, модуль или имя
  2. Синтаксисом инструкции import невозможно явно указать, что путь к модулю является абсолютным путем (хотя явно указать, что путь является относительным можно, а также возможно изменение семантики инструкции, в части использования абсолютного пути по умолчанию, см. www.python.org/dev/peps/pep-0328 )

Из этих двух особенностей следуют такие неоднозначности для записи import abcd:
  1. Импортировать ПАКЕТ abcd, либо импортировать МОДУЛЬ abcd
  2. Импортировать пакет/модуль abcd из ТЕКУЩЕГО ПАКЕТА (из пакета того модуля, в котором исполняется import abcd), либо ИЗ ПАКЕТА в соответствии с перечнем каталогов, указанных в sys.path

Еще примеры неоднозначностей:
  • from abcd import defg: (импортировать модуль defg из пакета abcd, либо импортировать пакет defg из пакета abcd, либо импортировать имя defg из пакета abcd, либо импортировать имя defg из модуля abcd) X (из того же пакета, либо из пакета в соответствии с sys.path)
  • import abcd.defg: (импортировать пакет defg из пакета abcd, импортировать модуль defg из пакета abcd) X (из того же пакета, либо из пакета в соответствии с sys.path)

Для разрешения эти декларативных неоднозначностей должен существовать императивный алгоритм. Такой алгоритм в некотором виде описан в официальной документации Python.
Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии14

Сборник полезных ссылок для системного администратора

Время на прочтение2 мин
Количество просмотров189K
Думаю у каждого грамотного системного администратора есть коллекция ссылок на полезные в работе ресурсы. Я имею в виду различные сайты и блоги, на которых выкладываются полезные с точки зрения системного администратора посты.
Предлагаю ими поделиться в формате ссылка — описание.
Пример: habrahabr.ru — разнообразные статьи и новости на IT и около-IT тематику.

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

P.S. Хабр, опеннет и лор можно не упоминать. Можно выкладывать ссылки на конкретные статьи, если считаете их очень полезными.

Начну с себя (т.к я администрирую linux, то и ссылки у меня в основном соответствующие):
Читать дальше →
Всего голосов 105: ↑88 и ↓17+71
Комментарии68

Термометр, джойстик и ноутбук в одном шкафу, не считая ардуино

Время на прочтение8 мин
Количество просмотров76K

С чего всё началось


Однажды давным давно стоял у меня в шкафу в прихожей домашний сервер под дебианом. Работал круглосуточно, поддерживал вторичный DNS, бэкапы делал, торренты покачивал, служил медиасервером, и прочее, и прочее (ну вы сами знаете для чего бывает нужен домашний сервер). В то же самое время охота мне было иметь указатель погоды на улице, чтобы перед выходом из дома нужной тёплости штаны надевать. Термометр за окном на эту роль не годился — из-за всяких паразитных воздушных потоков у стен многоэтажки показывал он что попало, да и кроме температуры для правильного выбора штанов интересно знать ветер и влажность. В итоге у сервера появился монитор на наружной поверхности шкафа. А сам сервер научился забирать сведения о текущей погоде в формате METAR из ближайшего аэропорта (он относительно недалеко, и его метеосводка очень близка к тому, что за дверью), а сведения о прогнозе на ближайшие сутки в XML с gismeteo.ru. Все это через простекций веб-интерфейс показывалось автоматически стартовавшим при загрузке сервера браузером. Потом на страничку добавились сведения о загруженности канала в интернет, текущем состоянии торрентов (у rTorrent-а есть соответствующий программный интерфейс для этого), изображение камеры видеонаблюдения за дверью, что-то ещё… Выглядело это примерно так:
image

Через некоторое время стали очевидными два недостатка. Во-первых, чтобы поглядеть, скажем, температуру за бортом приходилось включать монитор (держать его постоянно включенным плохо — и монитор деградирует, и свет от него ночью мешает). А включается монитор не мгновенно, и эти вот несколько (казалось бы!) секунд раздражают. Во-вторых, полное отсутствие устройств управления существенно ограничивает возможности применения этого хозяйства. Сильно, например, не хватало возможности управления камерой наблюдения (она с приводом по курсу и тангажу). А потом вообще все кончилось. Сервер после ряда модернизаций и роста нагрузки стал перегреваться в шкафу, а домочадцам надоел его шум. В конце концов он был сослан за пределы жилых помещений. А потребность в термометре и всём другом осталась…
Ставим задачу
Всего голосов 53: ↑51 и ↓2+49
Комментарии16

Whois: практическое руководство пользователя

Время на прочтение32 мин
Количество просмотров170K
Статья рассказывает о работе whois протокола, о существующих клиентских решениях и об особенностях коммуникации с различными whois серверами (а также о выборе правильного whois сервера). Ее основная задача — помочь в написании скриптов для получения whois информации для IP адресов и доменов.

Что такое whois?


Что такое и для чего нужен whois можно прочитать, например, здесь: http://en.wikipedia.org/wiki/Whois.

В нескольких словах, whois (от английского «who is» — «кто такой») – сетевой протокол, базирующийся на протоколе TCP. Его основное предназначение – получение в текстовом виде регистрационных данных о владельцах IP адресов и доменных имен (главным образом, их контактной информации). Запись о домене обычно содержит имя и контактную информацию «регистранта» (владельца домена) и «регистратора» (организации, которая домен зарегистрировала), имена DNS серверов, дату регистрации и дату истечения срока ее действия. Записи об IP адресах сгруппированы по диапазонам (например, 8.8.8.0 — 8.8.8.255) и содержат данные об организации, которой этот диапазон делегирован.

Читать дальше →
Всего голосов 101: ↑97 и ↓4+93
Комментарии31

Улучшаем опыт взаимодействия с формами

Время на прочтение8 мин
Количество просмотров44K
Часто меня спрашивают студенты: «Какой элемент сайта самый важный?», на что я им отвечаю — формы. Ведь с помощью форм пользователи совершают почти все конверсионные действия. Именно с этим элементом связано больше всего проблем. В этой статье я постараюсь рассказать, что можно улучшить при взаимодействии с формами. А заодно описать новые возможности работы с ними в браузерах.

Однако, сначала я бы хотел обозначить свою позицию по разработке таких форм. По-моему мнению, правильным подходом при разработке интерфейсов является подход прогрессивного улучшения.
Читать дальше →
Всего голосов 93: ↑88 и ↓5+83
Комментарии32

Насколько вы подвержены тупняку, и немного holywar

Время на прочтение3 мин
Количество просмотров14K
Случайно услышал рассказ одного коллеги другому о том, что в скриптовых языках все очень клево и удобно. Рассказчик пропагандировал perl, как что-то очень крутое, простое и понятное.
Не удержался и встрял, сказав, что python попонятнее будет, а возможностей предоставляет совсем не меньше.
Дальше меня спросили, как в python обстоят дела с регулярными выражениями, и в результате пришли мы к такой задаче:

Есть строка, необходимо вывести все слова в ней, которые встречаются N раз.

Задачка конечно совсем тривиальная и написание решения занимает считаные минуты, но этот тупняк поглотил всех как минимум на несколько часов. Если вы поддаетесь тупнячкам, то прошу пожаловать подкат
Читать дальше →
Всего голосов 46: ↑24 и ↓22+2
Комментарии94

Открытая система управления “умным домом” MajorDoMo

Время на прочтение7 мин
Количество просмотров75K
В этой статье я расскажу об одном проекте, которым занимаюсь уже довольно продолжительное время и который с некоторых пор доступен широкой публике. Речь идёт о системе управления “умным домом” MajorDoMo (Major Domestic Module), являющейся центральным блоком комплекса программно-аппаратных решений, которые я, в силу своих скромных возможностей, внедряю в своём домашнем хозяйстве.

image

Но обо всём по порядку…

Читать дальше →
Всего голосов 120: ↑117 и ↓3+114
Комментарии58

Типичный день под присмотром Алисы

Время на прочтение6 мин
Количество просмотров135K
Недавно вышла новая версия комплекса MajorDoMo, о котором на Хабре была обзорная статья, и я решил, что было бы хорошо показать на живом примере, как оно работает. Возьмём самый обычный будний день и посмотрим, как Умный дом себя вёл в его течении.

Картинка для привлечения внимания

Читать дальше →
Всего голосов 192: ↑179 и ↓13+166
Комментарии112

NoSQL базы данных: понимаем суть

Время на прочтение9 мин
Количество просмотров577K
В последнее время термин “NoSQL” стал очень модным и популярным, активно развиваются и продвигаются всевозможные программные решения под этой вывеской. Синонимом NoSQL стали огромные объемы данных, линейная масштабируемость, кластеры, отказоустойчивость, нереляционность. Однако, мало у кого есть четкое понимание, что же такое NoSQL хранилища, как появился этот термин и какими общими характеристиками они обладают. Попробуем устранить этот пробел.


Читать дальше →
Всего голосов 137: ↑133 и ↓4+129
Комментарии75

Про jQuery и велосипеды — мое дополнение

Время на прочтение6 мин
Количество просмотров64K
Сразу спешу сообщить вам, что я никоим образом не связан с автором предыдущей статьи. Однако, прочитав ее и увидев такой положительный отклик сообщества на статью, я тоже вдохновился и решил добавить немного своих наблюдений и знаний, к тому же это может послужить моей входной точкой в круги хабрасообщества.

Для затравки начнем с простого.
Читать дальше →
Всего голосов 242: ↑230 и ↓12+218
Комментарии126
12 ...
9

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность