Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Миграция на Python 3
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Pavel Zinovkin
December 20, 2012
Technology
43
1
Share
Миграция на Python 3
Moscow Django Meetup № 8
Pavel Zinovkin
December 20, 2012
More Decks by Pavel Zinovkin
See All by Pavel Zinovkin
Редактор Mail.Ru или скорочтение за полчаса
pzinovkin
0
40
Other Decks in Technology
See All in Technology
探して_入れて_作って_使う_Agent_Skills___LT.pdf
peintangos
2
150
BigQuery の Cross-cloud Lakehouse への歩み
phaya72
2
330
『家族アルバム みてね』における インシデント対応との向き合い方 / Approach incident response in Family Album
kohbis
2
290
形式手法特論:公平性制約の位相的特徴づけ #kernelvm / Kernel VM Study Kansai 12th
ytaka23
1
680
オンコールの負荷軽減のためのBits Assistant 活用方法 / How to Use Bits Assistant to Reduce the Workload on On-Call Staff
sms_tech
1
370
個人最適 から 全体最適 へ AI情報共有会・AIギルド・AI-DLC で進める カンリーの組織展開
rfdnxbro
0
580
TypeScript Compiler APIとPHP-Parserを活用し、TypeScriptとPHPで型を共有する
shuta13
0
320
Dynamic Workersについて
yusukebe
2
570
イベントストーミングとKiroの仕様駆動開発で実現する要件の認識合わせプロセス
syobochim
7
1.1k
Java正規表現エンジン(NFA)の仕組みと パフォーマンスを維持するための最適化手法
takeuchi_132917
0
170
Platform Engineering as a Product: Criteria for Improvement and Multi-Tenant Design
kumorn5s
0
470
速さだけじゃない! VoidZero ツールが移行先に選ばれる理由
mizdra
PRO
6
730
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
9.9k
4 Signs Your Business is Dying
shpigford
187
22k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
200
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
930
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
550
From π to Pie charts
rasagy
0
200
Git: the NoSQL Database
bkeepers
PRO
432
67k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
180
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
Transcript
Миграция на Python 3 Зиновкин Павел Thursday, December 20, 12
Кто я? Thursday, December 20, 12
Я руковожу python-разработкой в Почте Mail.ru Thursday, December 20, 12
Python в Почте, это... • calendar.mail.ru • postmaster.mail.ru • различные
скрипты • <secret>.mail.ru Thursday, December 20, 12
Python - отличный инструмент для нас. Мы используем версию 2.7.3
Thursday, December 20, 12
Python 2.7 is intended to be the last major release
in the 2.x series. Thursday, December 20, 12
29-го сентября был релиз Python 3.3 Thursday, December 20, 12
Python 3 • GIL стал лучше • Все строки теперь
unicode • print теперь функция • Улучшения в стандартной библиотеке Thursday, December 20, 12
PEP-393 Cтроки потребляют меньше памяти (в 2-4 раза меньше) Thursday,
December 20, 12
Часть из этого уже доступно в 2.6, 2.7 docs.python.org/3/whatsnew/index.html Thursday,
December 20, 12
На pypi более 1400 пакетов для Python 3 Thursday, December
20, 12
Даже Django 1.5 будет поддерживать Python 3 (“экспериментально”) Thursday, December
20, 12
We're like a bunch of penguins crowded at the edge
of the ice waiting to see if the first few to dive in get eaten by a sea lion or not. ... I have to choose the productivity of full library support over engineering joy. news.ycombinator.com/item?id=2543087 Thursday, December 20, 12
Возможно, все не так плохо. Проверим на чем-то простом. Thursday,
December 20, 12
Thursday, December 20, 12
postmaster.mail.ru • mysql • tarantool • memcached • rabbitmq Thursday,
December 20, 12
postmaster.mail.ru tarantool Django pylibmc celery requests MySQL-python raven django-celery Thursday,
December 20, 12
Как портировать? Thursday, December 20, 12
Для начала надо понять как это запускать в бою. Thursday,
December 20, 12
Мы используем python и uwsgi из rpm (deb тоже подойдет)
Thursday, December 20, 12
Нативные пакеты это здорово: • yum install postmaster • не
надо учить админов • pypi не умрет посреди раскладки • можем ставить нужный Python Thursday, December 20, 12
Библиотеки Thursday, December 20, 12
создаем virtualenv (python3.3) pip install -r requirements.txt Thursday, December 20,
12
DLL-Hell Thursday, December 20, 12
mysqldb -> pymysql3 + monkeypatch pylibmc -> python3-memcached сломан django_nose,
kombu портирован tarantool django-celery не работает с django 1.5! Thursday, December 20, 12
Портирование кода предельно просто Thursday, December 20, 12
./manage.py test hint: особое внимание строкам и преобразованиям unicode <->
utf-8 Thursday, December 20, 12
Заодно можно порефакторить Thursday, December 20, 12
Отломан celery Плохие тесты Но оно таки заработало! Thursday, December
20, 12
Ситуация с библиотеками не позволяет использовать Python 3 Thursday, December
20, 12
Однако переход состоится (django 1.5, celery, psycopg2, matplotlib, numpy, ipython)
Thursday, December 20, 12
И каждый из нас может внести в это свой вклад
docs.python.org/3/howto/pyporting.html Thursday, December 20, 12
Вопросы? Thursday, December 20, 12