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
44
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Миграция на 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
41
Other Decks in Technology
See All in Technology
AI時代のアウトプット――変わったこと、変わらないこと / Devsumi 2026 Kansai #devsumi
jnchito
0
580
【Aiming】共通基盤なのに「共通化しない」課金・認証基盤「LINK」が選び取ったシングルテナント戦略と運用の秘訣
saikeda
0
210
電話に出る Python のログの話
shinnosuke_kishida
0
220
AI画像認識を活用したゲーム内決済処理検証の自動化
gree_tech
PRO
0
500
EMの役割で 変わったこと・変わらなかったこと
sansantech
PRO
0
110
会計事務所と顧問先の契約関係をOIDC・OAuthで表現する
terara
0
320
長期運営で肥大化したExcelマスターデータの解消に向けた移行事例
gree_tech
PRO
0
500
平文パスワードはログに“残り” ── 肝心の侵入は“痕跡すら残らない”
kuroneko13
0
130
Claude Teamプランの コスト最適化を考える
rfdnxbro
0
680
わたしが知り合いゼロの勉強会に 行けるようになるまで
r5ni4
2
780
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
24k
内製AIチャットボット開発で学んだ Datadog Agent Observability活用術
mkdev10
0
140
Featured
See All Featured
Exploring anti-patterns in Rails
aemeredith
3
470
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Ethics towards AI in product and experience design
skipperchong
2
350
The browser strikes back
jonoalderson
0
1.5k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.1k
Code Reviewing Like a Champion
maltzj
528
40k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
670
Git: the NoSQL Database
bkeepers
PRO
432
67k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.1k
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