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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Pavel Zinovkin
December 20, 2012
Technology
41
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
39
Other Decks in Technology
See All in Technology
自立を加速させる神器 - EMOasis #11
stanby_inc
0
150
LLM時代の検索アーキテクチャと技術的意思決定
shibuiwilliam
3
1.4k
ワールドカフェI /チューターを改良する / World Café I and Improving the Tutors
ks91
PRO
0
320
明日からドヤれる!超マニアックなAWSセキュリティTips10連発 / 10 Ultra-Niche AWS Security Tips
yuj1osm
0
600
これからの「データマネジメント」の話をしよう
sansantech
PRO
0
120
ハーネスエンジニアリングの概要と設計思想
sergicalsix
9
5.1k
Standards et agents IA : un tour d’horizon de MCP, A2A, ADK et plus encore
glaforge
0
170
Microsoft 365 / Microsoft 365 Copilot : 自分の状態を確認する「ラベル」について
taichinakamura
0
290
Amazon S3 Filesについて
yama3133
2
210
マルチプロダクトの信頼性を効率良く保っていくために
kworkdev
PRO
0
170
エージェントスキルを作って自分のインプットに役立てよう
tsubakimoto_s
0
390
「SaaSの次の時代」に重要性を増すステークホルダーマネジメントの要諦 ~解像度を圧倒的に高めPdMの価値を最大化させる方法~
kakehashi
PRO
3
1.4k
Featured
See All Featured
Writing Fast Ruby
sferik
630
63k
Deep Space Network (abreviated)
tonyrice
0
120
ラッコキーワード サービス紹介資料
rakko
1
3.1M
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
340
Code Reviewing Like a Champion
maltzj
528
40k
My Coaching Mixtape
mlcsv
0
100
How GitHub (no longer) Works
holman
316
150k
Tell your own story through comics
letsgokoyo
1
900
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
The Curious Case for Waylosing
cassininazir
0
310
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