Архив автора: admin

Установка питона и пакетов

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

Задачи обычно возникающие при установки питона и его пакетов:

  • Выбор дистрибутив питона и его установка
  • Выбор IDE
  • Поиск и установка пакетов

Кроме этого я пробегусь по этим полезным вещам:

 

Выбор дистрибутив питона и его установка

Если вы используете linux, то лучше использовать python идущий в пакетах — как правило это немного измененный cpython. Для windows можно выбирать между стандартным питоном и дистрибутивом от Active State. Последний содержит расширенную документацию и некоторые дополнительные библиотеки. Мы не будем рассматривать PyPy/Stackless/etc — ограничимся только CPython. Дальше нужно сделать выбор между двумя ветками — 3.2/3.3 и 2.7. Пока что с 2.7 у вас будет меньше проблем, но третья версия по поддержке уже подбирается достаточно близко. x86 и amd64 версии выбираем по вкусу. Установка и под windows и совершенно стандартна и не должна вызывать проблем. В linux питон уже почти 100% установлен.

 

Выбор IDE

Динамический характер языка делает написание функциональных IDE достаточно сложным, а высокая компактность кода и pythonic подход заметно уменьшает в них необходимость. Так что не сложные проекты можно делать в продвинутых текстовых редакторах — [notepad++], sublime text (или vim/emacs). Хотя новичкам IDE будут оказывать заметную помошь встроенной подсказкой и каким ни каким статическим анализом. Из IDE я бы выделил eclipse + pydev и платные PyCharm и KomodoIDE. Также есть Python tools for VS, которые добавляет поддержку cpython и ironpython в VS2010/VS2012.

Я бы советовал выбирать между sublime text и eclipse + pydev.

 

Поиск и установка пакетов

Пакеты/модули в python это файлы с расширениями py/pyc/pyo/(pyd или so), или директории с такими файлами. Также весь пакет может быть в одном архиве (только если пакет не содержит pyd/so файлы). По умолчанию пакеты устанавливаются в системную папку — PYTHON_ROOTlibsite-packages для windows и /usr/local/lib/pythonXX/dist-packages для ubuntu (XX — версия питона, PYTHON_ROOT — корневая папка установки python, как правило С:PythonXX)

Если вы используете linux, то можно использовать пакеты из дистрибутива — в Ubuntu/Fedora есть практически все. Иначе искать пакеты в основном стоит на pypi или с помощью google. Пакеты могут быть в трех основных форматах: архив, exe/msi, egg.

Архив нужно распаковать, в корневой папке должен быть файл setup.py. Если его там нет, то можно просто скопировать содержимое архива в директорию с пакетами. Если setup.py есть, то нужно выполнить python setup.py install. При этом следует использовать тот интерпретатор питона, в который вы хотите установить пакет. Если пакет не предоставляет модулей написанных на С/С++, то установка должна пройти без особенных проблем. Иначе python будет пытаться собрать компилируемые расширения. В linux такой процесс проходит чаще всего безболезненно (максимум требуется установка пакетов с заголовочными файлами для для используемых C библиотек), а вот в windows путь компиляции может быть достаточно трудным.

При установке в windows проще использовать уже собранный exe/msi файл. Для большинства пакетов они доступны на pypi или на сайте библиотеки, также много бинарных пакетов можно найти на pythonlibs. При загрузке обратите внимание на архитектуру и версию python. Для установки такие пакеты нужно запустить. Библиотеки не содержащие компилируемого кода уставливаются без проблем на обеих системах.

egg это формат пакетов одного из пакетные менеджеров питона — setuptools. Грубо говоря это zip архив с дополнительной информацией о пакете и его зависимостях. Более новой и активно развиваемой альтернативой setuptools является pip. pip использует код setuptools(или distribute) и не поддерживает egg. Оба этих менеджера умеют находить пакеты по имени на pypi, по URL и локально. Поддерживаются разнообразные форматы архивов и автоматическая установка зависимостей. pip умеет деинсталлировать пакеты и поддерживает установку из svn/git/mercurial.

Установка pip — www.pip-installer.org/en/latest/installing.html

Установка setuptools

Оба этих менеджера предоставляют команду easy_install, pip кроме этого предоставляет команду pip.

Использование (примеры команд без их вывода):

Без подсветки синтаксиса

# pip install pylint # установим pylint
# easy_install install -U pylint # обновить пакет
# pip install --upgrade simplejson
# pip uninstall simplejson # удалить
# pip install http://my.package.repo/SomePackage-1.0.4.zip
# pip install git+https://github.com/simplejson/simplejson.git
# pip install svn+svn://svn.zope.org/repos/main/zope.interface/trunk/

 

# pip install pylint # установим pylint
# easy_install install -U pylint # обновить пакет
# pip install --upgrade simplejson
# pip uninstall simplejson # удалить
# pip install http://my.package.repo/SomePackage-1.0.4.zip
# pip install git+https://github.com/simplejson/simplejson.git
# pip install svn+svn://svn.zope.org/repos/main/zope.interface/trunk/

 

virtualenv

virtualenv позволяет делать на одной машине несколько независимых инсталляций python, каждая из которых имеет свой интерпретатор, набор настроек и библиотек. Некоторые из таких окружений могут использовать системную папку с дополнительными пакетами. Кроме этого virtualenv позволяет устанавливать питон и пакеты пользователям без прав root.

Без подсветки синтаксиса

$ sudo pip install virtualenv # или sudo apt-get install python-virtualenv
$ virtualenv --distribute ENV_NAME # или python virtualenv.py --distribute ENV_NAME

—distribute заставить virtualenv установить distribute вместо setuptools.

 

$ sudo pip install virtualenv # или sudo apt-get install python-virtualenv
$ virtualenv --distribute ENV_NAME # или python virtualenv.py --distribute ENV_NAME

—distribute заставить virtualenv установить distribute вместо setuptools.

 

Эта команда создаст папку ENV_NAME внутри которой будет интерпретатор python ENV_NAME/bin/python и каталог для пакетов ENV_NAME/lib/pythonX.X/site-packages. ENV_NAME/bin/python будет настроен на поиск пакетов в ENV_NAME/lib/pythonX.X/site-packages. Также virtualenv устанавливает в новое окружение pip. Что-бы активировать это окружений нужно исполнить скрипт activate.

Без подсветки синтаксиса

$ source ENV_NAME/bin/activate
> ENV_NAMEScriptsactivate # для windows

 

$ source ENV_NAME/bin/activate
> ENV_NAMEScriptsactivate # для windows

 

Теперь команда python будет приводить к запуску питона из ENV_NAME/bin/python, то же относится и к pip. После окончания работы нужно выполнить deactivate. virtualenv включили в стандартную библиотеку начиная с python3.3

 

lint’ы

Линтами называют средства статического анализа по имени первой такой утилиты, которая находила странно написанные участки C кода, потенциально содержащие ошибки. Из-за динамического характера python сделать для него очень хороший линт невозможно, а даже просто хороший очень сложно. Ошибки при которых С программа даже не скомпилируется могут легко загнать в угол python линты. Но тем не менее значительную часть (а у начинающих — практически все) ошибок/опечаток они найдут.

Три основных lint’а для python это pylint, pychecker и pyflakes. Из них pylint, наверное, наиболее сообразительный. Кроме этого он имеет большое количество настроек, которые позволяют изменить особенности проверок. Также pylint проверяет стиль кода, используя шаблоны из конфигурационного файла и собирает полезную статистику. Плюс большая часть IDE и даже sublime имеют интеграцию с pylint.

По умолчанию pylint слишком требовательный так что начинать его использование стоит с подстройки конфига под себя, кроме этого иногда он дает ложные срабатывания.

Как более легкую альтернативу можно использовать pep8, проверяющий код на соответствие основному python стандарту кодирования.

 

ipython

Чуть подробнее о установке ipython. Под linux с правами root все просто (ubuntu):

Без подсветки синтаксиса

$ sudo apt-get install ipython ipython-doc ipython-notebook ipython-qtconsole python-zmq

 

$ sudo apt-get install ipython ipython-doc ipython-notebook ipython-qtconsole python-zmq

 

или

Без подсветки синтаксиса

$ sudo apt-get install --install-suggests ipython

 

$ sudo apt-get install --install-suggests ipython

 

ipython готов к запуску —

Без подсветки синтаксиса

$ ipython qtconsole # GUI консоль
$ ipython notebook  # Web интерфейс
$ ipython # консольный интерфейс

 

$ ipython qtconsole # GUI консоль
$ ipython notebook  # Web интерфейс
$ ipython # консольный интерфейс

 

Под windows все не так просто — нужно загрузить все пакеты и зависимости вручную и установить их. pip поможет не сильно, поскольку большая часть пакетов С расширения с внешними зависимости и собирать их будет лишней сложностью. Зависимости ipython (поскольку мы не будем использовать pip то их придется выяснять и устанавливать самостоятельно) можно определить двумя способами — найти в документации по установке или пытаться запускать ipython и смотреть на ошибки импорта. Из документации находим зависимости:

  • pyqt или pyside
  • pyzmq
  • tornado
  • pygments
  • pyreadline
  • distribute или setuptools

Бинарные версии всех этих пакетов есть в pythonlibs. Загружаем и ставим в любом порядке. После чего выбираем из:

Без подсветки синтаксиса

> С:Python2.7Scriptsipython.bat qtconsole # GUI консоль
> С:Python2.7Scriptsipython.bat notebook # Web интерфейс
> С:Python2.7Scriptsipython.bat # консольный интерфейс

 

> С:Python2.7Scriptsipython.bat qtconsole # GUI консоль
> С:Python2.7Scriptsipython.bat notebook # Web интерфейс
> С:Python2.7Scriptsipython.bat # консольный интерфейс

 

pythonanywhere.com

Если поставить питон совсем никак нельзя, то можно воспользоваться web консолью на указанном сайте. После регистрации можно бесплатно запустить 2 python/ipython консоли в браузере и пробовать python без установки.

Ссылки:
pypi.python.org/pypi/virtualenv
www.python.org/download
www.activestate.com/activepython/downloads
pypi.python.org/pypi
www.lfd.uci.edu/~gohlke/pythonlibs
www.pip-installer.org/en/latest/index.html
ipython.org/ipython-doc/stable/install/install.html
pychecker.sourceforge.net
pytools.codeplex.com
launchpad.net/pyflakes
www.python.org/dev/peps/pep-0008
pypi.python.org/pypi/pylint
pypi.python.org/pypi/pep8
www.jetbrains.com/pycharm
pydev.org
pypi.python.org/pypi/setuptools
www.sublimetext.com
www.activestate.com/komodo-ide
pythonanywhere.com

Исходники этого и других постов со скриптами лежат тут — github.com/koder-ua. При использовании их, пожалуйста, ссылайтесь на koder-ua.blogspot.com.

Автор: konstantin danilov

В России не будет списка жизненно-важных лекарств

Ассоциация русских фармацевтических производителей (АРФП) хочет аннулировать установление перечня жизненно необходимых и главнейших лечебных средств (ЖНВЛП).

О данном стало известно в процессе пятого ежегодной конференции «Фармацевтический бизнес». Гендиректор ассоциации Виктор Дмитриев подтвердил данную информацию.
— Есть толковое представление того, что же данный список в некоторой степени является пережитком той вот организации, какая выработалась в минувшие годы. Но мы вынуждены пока что действовать с данным ассортиментом. Будущие времена подразумевают, что этого перечня никак не достаточно. Должны появиться стандарты лечения и поэтому какое угодно зарегистрированное лекарство будет автоматически входить в данные стандарты, — сообщил Дмитриев.
По взгляду Дмитриева, значение формирования перечня ЖНВЛП было не полностью ясно с самого начала.
Стоит отметить, что существует нетрадиционная медицина и различные тайны народного целительства, которые включают в себя уникальные медицинские знания народов мира.
В список ЖНВЛП входят новейшие и очень дорогие препараты, так и активированный уголь и иже с ним. Список весьма спорный, и на данный момент не имеет смысла принимать его в нашей стране.

Локализация FreeBSD — переводим консоль на русский utf-8

 

Продолжая своё знакомство с FreeBSD, я обнаружил что система по-умолчанию совершенно  не дружит с UTF-8. Так как система будет использоваться для веб-сайтов, то присутствие кодировки UTF-8 просто необходимо. Да и не хочется коллекционировать кодировки, ведь я пользуюсь разными системами.

 

Читать

Гамбургер с индейкой для худеющих

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

Малокалорийное и изнеженное окорок индейки, совместно с приправами приобретёт утонченный привкус, а изюминкой станут пару оливок, скрытых в середине гамбургера.

Для приготовления нам понадобится:

  • 1 головка красного лука (порезать ломтиками и разделить на 4 части)
  • Салатный лист (4 части)
  • 1 Помидор
  • Маринованные оливки без косточек для изюминки (4 шт)
  • 1/4 чайной ложки острого красного перца
  • 1/2 чайной ложки соли
  • 1/4 чайной ложки молотого черного перца
  • 1 ст. л. растительного масла
  • 4 булочки для гамбургеров (разрезанных на 2 половинки)
  • 120 г острого сыра чеддер (разделенного на 4 части)
  • 400 г мяса индейки
  • 1 перец небольшого размера, мелко нарезанный
  • 1 ч. л. тертой цедры лайма
Перемешать в чашке окорок, цедру, размолотый красный и черный перец, нарезанный перец и соль. Разбить приобретенную соединение на 4 части и прибавить в любую из них по ¼ части нарезанного кубиками сыра чеддер. Организовать 4 котлеты и обжарить их в тёплой сковороде с маслом в обычном пламени, приблизительно по 5 мин. с каждой стороны вплоть до румяной корочки. Положить в нижнюю часть булочки зеленый лист, поверху котлету, навести красоту ее цедрой, красным луком, оливками, а потом, согласно желанию, брызнуть соусом и покрыть верхней частью булочки.Гамбургер с индейкой получается очень вкусный и полезный.

Небольшой экскурс в мир компьютерных вирусов. Часть 2

Продолжим нашу экскурсию в мир вредоносного софта и вернемся в 80-е годы.  К этому времени, уже накоплено материалы по безопасности информации, и вирус воспринимался как игрушка, эксперимент. Но когда «игрушка», выйдя из — под контроля, начала вести себя, как вполне разумный организм, заражая все, что попадалось на его пути, неожиданно наступило прозрение.

В 1988 г, а именно 2 ноября, студент Роберт Моррис запускает программу – червя. Вирус, кстати так и носит его имя. Червь Мориса, стает первым червем сети, с успехом распространяющемся «на свободе» и первой известной программой, эксплуатирующей такую уязвимость, именуемой переполнение буфера. За полтора часа, этот вредитель заразил 6 тысяч машин.

Происшествия были, но до заражения каждого десятого компьютера, еще не доходило.

Срочно пересматриваются требования к безопасностям систем и создаются институты, подобия CERT, которые занимаются безопасностью компьютеров и дают рекомендации по уничтожению вирусов.

Компьютеры становятся все доступнее. На рынке стали преобладают Intel — совместимые компьютеры, которые работают под управлением новой операционной системы, разработки компании Microsoft. События развиваются с огромнейшей скоростью.

1991 год. Появляется полиморфный вирус, способный видоизменять свое тело. Система Windows 95, уже практически готова, и её beta — версия разослана 160 тестерам. В итоге, все диски оказываются заражены загрузочным вирусом, под названием Form. Только один тестер, не поленившись, проверил диск антивирусом.

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

Появляется первый макровирус, целый сценарий, заражающий всю информацию Microsoft Word. За месяц макровирус Сoncept, обошел весь земной шар, внедряясь в компьютеры всех пользователей Microsoft Wordа, парализовывая работу, множества компаний всего мира. На сегодняшний день, известны около ста существующих модификаций Сoncep.

Во время следующей встречи, мы расскажем вам о появлении еще одного вируса, написанного для другой программы.

Кстати, если вы ищите добротный планшетный компьютер, и при этом не гонитесь за раскрученными брендами, то лучший китайский планшет можно найти по ссылке.

Автор: Сергей Курган

Кленовые подставки из фетра

Приближается холодная пора года. Скоро мы больше времени будем проводить в помещении. Завернувшись в теплый и уютный плед, будем через окно смотреть на холодные мокрые фигуры на улице, попивая горячий чай из любимой чашки. А чтобы мысль о наступающей осени не нагоняла на нас хандру, предлагаем заняться полезным и увлекательным делом – сшить подставки для чашки из фетра в форме опавших кленовых листочков.

Подставки для чашек

Читать