Однажды, холодным зимним вечером, я внезапно вспомнил, что не поделился простым секретом, как добиться простого питоновского счастья за пределами ASCII резервации в такой замечательно-бесплатной IDE как Eclipse с плагином PyDev. Причём счастья с отладкой и честным юникодом, что означает следующее: если вы назвали свою переменную кириллицей, вы сможете посмотреть у неё значение, поставив breakpoint, написать пару строк текста по-русски и у вас ничего не отвалится.
Да-да, уважаемый читатель, Eclipse PyDev не очень-то дружит с символами за пределами 0x7F и отладка очень любит отваливаться всякий раз при попытке прочитать значение кириллической переменной. Да какое там, простое наведение мышкой на юникодовый символ приводит к фатальным последствиям при отладке кода написанного на Python 3.x (UTF-8). Если же настройки вашей файловой системы отличаются от UTF-8, поздравляю, вы не сможете даже запустить ваш скрипт. Я имею в виду именно то, что например под Windows ваш замечательный скрипт с единственным словом по-русски просто выведет из строя PyDev.
Возможно я перестарался, сгущая краски, не пугайтесь, починить это в состоянии мы сами, просто прочитав эту небольшую инструкцию. В награду мы получим бесплатное средство разработки, довольно удобное, фантастически гибкое в настройках и усовершенствовании, вплоть до разработки на нескольких языках, со встроенным инструментом версионирования.
Под катом инструкция и неприличных размеров картинки.
Читать полностью »
Рубрика «python3» - 20
Настраиваем Eclipse PyDev под отладку Python 3.x с честным юникодом и кириллицей
2013-01-30 в 21:46, admin, рубрики: debug, eclipse, IDE, python, python3, Unicode, utf-8, кириллица, настройка, отладка, Программирование, Юникод, метки: debug, Eclipse, IDE, python, python3, Unicode, utf-8, кириллица, настройка, отладка, ЮникодПарсим список ваканский средствами Python
2013-01-21 в 21:52, admin, рубрики: grab, python, python3, script, метки: grab, python, python3, scriptНа Хабре уже была заметка, как вытащить и распарсить список вакансий с hh.ru.
Однако там использовался C# — язык сложных предложений с хитрыми интерфейсами. Что же касается обработки больших «простыней» однотипных данных, то для мелких задач в этой области испокон веку применяют скриптовые языки.
Вот и написался небольшой скрипт на python, который утаскивает с hh.ru список вакансий по некоторому запросу (пишется в переменную searchParam) и выводит их в формате CSV. Можно выводить на экран и удивляться, можно перенаправить в output.csv и открыть в каком-нибудь табличном редакторе.
Читать полностью »
Дружим Python 3 с MS Visual C++. Строим мост в Boost.Python с автоматической перекодировкой
2012-12-09 в 3:16, admin, рубрики: boost, boost.python, c++, c++11, microsoft, python, python 3.3, python3, visual c++, Visual Studio, visual studio 2012, windows, Программирование, С++, метки: boost, boost.python, c++11, microsoft, python, python 3.3, python3, visual c++, Visual Studio, visual studio 2012, windows, С++Всем доброго {daytime}!
Сегодня пришла пора рассказать вам о фундаментальной проблеме перекодировки при взаимодействии проекта собранного на MS Visual C++ на платформе Windows и наиболее приятной скриптовой обвязки для языка C++, благодаря библиотеке Boost.Python, собственно написанной для языка Python.
Вы ведь хотите использовать для вашего приложения на C++ под ОС Windows хорошую скриптовую обвязку на последней версии Python 3.x, либо вы хотите использовать для вашего приложения на Python максимально ускоренный участок кода вашего модуля, переписанный на C++. В обоих случаях, если вы знаете оба языка как минимум хорошо, вам стоит это прочитать.
Читать полностью »
Питон в коробке – venv в python 3.3
2012-11-05 в 17:37, admin, рубрики: deployment, deployment tools, python, python 3.3, python3, метки: deployment, deployment tools, python 3.3, python3Наверняка, большинство из тех, кто разрабатывает или деплоит Python приложения, использует виртуальные окружения. В частности через virtualenv, написанный Ian Bicking.
Идея оказалась так хороша и распостранена, что нечно похожее теперь присутствует в Python 3.3 из коробки в виде модуля venv. Он почти такой же, как virtualenv, только немного лучше. Читать полностью »
Запускаем PyBrain на Python 3
2012-07-27 в 12:06, admin, рубрики: pybrain, python, python3, портирование, метки: pybrain, python, python3, портированиеДоброго времени суток, %username%!
Хочу поведать историю о скрещивании python3 с библиотечкой PyBrain, описанной недавно на хабре.
Подробности под катом.
Читать полностью »
Префиксные деревья в Python
2012-07-17 в 11:24, admin, рубрики: python, python3, trie, структуры данных, метки: python, python3, trie, структуры данныхДоделал на днях питонью библиотеку datrie, реализующую префиксное дерево (см. википедию или хабр), спешу поделиться.
Если вкратце, то можно считать, что datrie.Trie — это замена стандартному питоньему dict, которая при определенных условиях (ключи — строки) занимает меньше памяти, имеет сравнимую скорость получения отдельного элемента и поддерживает дополнительные операции (получение всех префиксов данной строки, получение всех строк, начинающихся с данной строки и др.), которые работают примерно так же быстро, как и «словарные» операции.
Работает под Python 2.6-3.3, поддерживает юникод, лицензия LGPL.
Мысли о Python 3
2012-07-09 в 6:21, admin, рубрики: python, python3, переводы, Программирование, метки: python, python3Предлагаю вашему вниманю пересказ замечательной статьи автора Jinja2, Werkzeug и Flask, соавтора Sphinx и Pygments Армина Ронаха. Я получил огромное удовольствие разбирая исходные коды его творений и очень многое для себя почерпнул. Армин пишет отличные фреймворки, и как никто другой может разъяснить, чем чреват переход с Python 2 на Python 3 и почему его не так легко осуществить.
Конвертируем Selenium веб-драйвер для Python 3.x
2012-05-05 в 11:08, admin, рубрики: Firefox, integration testing, python, python3, selenium, webdriver, Веб-разработка, интеграционное тестирование, Песочница, метки: firefox, integration testing, python, python3, selenium, webdriver, интеграционное тестированиеИтак, вы задались целью отладить своё веб-приложение. Вам хочется, чтобы браузер «сам тыкал» на кнопочки, ходил по ссылкам и при этом ещё и проверял состояние элементов. Словом хочется вам интеграционного тестирования, чтобы некий скрипт задавал сценарий действий пользователя и при этом параллельно проверял состояние элементов и изменения в базе данных.
Допустим вы находите или где-то уже слышали, или даже давно хотели попробовать специальный инструментарий для этих дел, зовущийся Selenium WebDriver. Вы идёте на сайт Selenium и радостно прыгаете от восторга: поддерживается ваш любимый скриптовый язык Python! Но увы, как и в случае с Django у разработчиков ещё не дошли руки до Python 3.x. Так что все вкусные синтаксические куски рафинада, а также встроеная поддержка UTF-8 по умолчанию не поддерживаются.
Однако, вооружившись знаниями о различиях между Python 2 и 3, а также стандартной утилитой 2to3.py мы в два счёта поборем всё то, что мешает нашему счастью и всеобщему прогрессу в разработке тестовых скриптов для интеграционного тестирования.
Читать полностью »
Пользователь eyeofhell недавно написал статью Python vs Ruby
Знатный холивар получился. Не могу не поддержать. Сначала думал написать в комментарии — но ответ вышел слишком объемным.