Expertus metuit
Написано Sergey Stolyarov 2016-07-16 в 09:20

В unix-системе питоновские пакеты совсем не обязательно нужно ставить в системные каталоги (в /usr/, например). Благодаря virtualenv, пакеты можно установить в любой каталог, инициализировать локально окружение в терминале через специальный скрипт и дальше пользоваться всеми установленными в том каталоге библиотеками и программами. Локальный набор пакетов очень удобен для разработчика, так как позволяет на одной системе переключаться между разными их версиями.

В статье я описываю не только концепт, но и всю процедуру подготовки локального окружения. Сразу же уточнение: всё работает только в терминале, то есть вы запускаете терминал, «активируете» в нём нужный каталог с пакетами и дальше в этом терминале работаете. Базовая операционная система — linux, *bsd или mac os x. Windows я не рассматриваю.

Итак, нам понадобится установленный системно python3. Для линукса он ставится из пакетов вашего репозитория, для макоси — скачивается с офсайта https://www.python.org/downloads/mac-osx/. На данный момент последняя версия — 3.5.2, её и ставим. В принципе, версия из brew тоже сойдёт.

Теги: python, linux, macosx
Написано Sergey Stolyarov 2014-07-16 в 10:28

В питоне есть модуль logging, через который приложение может выводить логи, например, в терминал при отладке программы. По умолчанию вывод выглядит просто как сплошной поток текста, однако его можно раскрасить, чтобы разные типы сообщений (DEBUG, INFO и т.п.) печатались разными цветами. Для этого нужно сконфигурировать форматер логов и протащить его в программу, сделать это можно разными способами в ini-файле проекта или внутри самой программы.

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

Теги: python
Написано Sergey Stolyarov 2011-08-03 в 15:50

Задача: есть PDF, в котором очень широкие поля, плюс куча мусора на них типа «Украдено в Хилтоне», поэтому нужно поля по максимум отрезать. Можно, конечно, рыть интернеты в поисках подходящей программы, но за короткий срок этого сделать не удалось.

Всё решилось совершенно неожиданным путём: ставим пакет python-pypdf, пишем простейший питоновский скрипт и получаем ровно что нужно.

Теги: linux, python
Написано Sergey Stolyarov 2009-10-23 в 22:26

Печатаем, что играет амарок. Скрипт очень простой (считаем, что локаль процесса, откуда вызывается скрипт, юникодная):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/env python2.5
# -*- coding: utf-8 -*-

import dbus
bus = dbus.SessionBus()

proxy = bus.get_object('org.kde.amarok', '/Player')
player = dbus.Interface(proxy, "org.freedesktop.MediaPlayer")
metadata = player.GetMetadata()

# access metadata using operator []:

np = u"/me now listening to %(artist)s — %(t)s (album: %(album)s)" % {
    't': metadata['title'],
    'artist': metadata['artist'],
    'album': metadata['album']
    }

print np.encode("utf-8")
Теги: desktop, linux, python
Написано Sergey Stolyarov 2009-05-06 в 02:05

Решил написать какую-нибудь простую систему для генерации FictionBook2-файлов, разметка — нечто wiki/markdown/reStructuredText/Sphinx-подобное, плюс файл с метаданными в виде простого .ini-подобного файла.

За несколько часов настрогал, потом пару дней отлаживал. Оказалось вполне пригодно для использования. Создание/обновление книг значительно ускорилось. Уже несколько книг обработал, в частности, вот этот сборник сказок братьев Гримм.

Никакой документации, кроме демонстрационного проекта, пока нет.

Сайт проекта: metafb2.googlecode.com

Теги: python
←новые старые→
© 2006—2016 Sergey Stolyarov | Работает на Pyrone