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
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
ポスター発表&デモと総括 / Poster Presentations & Demonstrations and Summary
ks91
PRO
0
190
「速く作る」から「正しく作る」へ ─ 生成AI時代の開発フロー改革の ロードマップと実行 ─
starfish719
0
3.1k
Databricks における 生成AIガバナンスの実践
taka_aki
1
220
Sony_KMP_Journey_KotlinConf2026
sony
2
200
運用を見据えたAIエージェント設計実践
amacbee
0
1.9k
TROCCOで始めるクラウドコストを民主化するためのFinOps
tk3fftk
3
540
実装は速くなった、レビューはどうする? ― 自身のレビューをAIで再現させるサーヴァントエンジニアリングのすゝめ / Implementation got faster. So what about reviews? — An invitation to Servant Engineering: Recreating your own code reviews with AI
nrslib
3
2.2k
JEP 522 Deep Dive - G1 GC同期コスト削減によるスループット向上を徹底検証&解説
tabatad
1
630
AI活用を推進するために ファインディが下した、一つの小さな決断
starfish719
0
180
AI Engineering Summit Tokyo 2026 AIの前に、やることがある 〜医療データ企業の4フェーズ〜
dtaniwaki
0
910
プラットフォームエンジニア ワークショップ/ platform-workshop
databricksjapan
0
170
APIテストとは?
nagix
0
170
Featured
See All Featured
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
Deep Space Network (abreviated)
tonyrice
0
160
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
310
Accessibility Awareness
sabderemane
1
130
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
400
Scaling GitHub
holman
464
140k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
150
Ruling the World: When Life Gets Gamed
codingconduct
0
240
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
The Spectacular Lies of Maps
axbom
PRO
1
780
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
570
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
160
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