Submit Search
Upload
Python2と3の互換性問題に立ち向かうときにまずやること
•
0 likes
•
1,188 views
kiki utagawa
Follow
Python2 と 3の話
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 97
Download now
Download to read offline
Recommended
みんなのPython勉強会#62
みんなのPython勉強会#62
hiroya akita
LLoT ランゲージアップデート Python
LLoT ランゲージアップデート Python
hirokiky
Kogcoder LT
Kogcoder LT
teamcpaw
Pyladies tokyo 20150123
Pyladies tokyo 20150123
Ai Makabi
20120512
20120512
YAMANE Toshiaki
Seq2Seqでボットづくり
Seq2Seqでボットづくり
Masato Fujitake
Code for iizukaとオープンデータ
Code for iizukaとオープンデータ
Kindai University
Code jp2013で行った ショートコーディング について
Code jp2013で行った ショートコーディング について
Fumihito Yokoyama
Recommended
みんなのPython勉強会#62
みんなのPython勉強会#62
hiroya akita
LLoT ランゲージアップデート Python
LLoT ランゲージアップデート Python
hirokiky
Kogcoder LT
Kogcoder LT
teamcpaw
Pyladies tokyo 20150123
Pyladies tokyo 20150123
Ai Makabi
20120512
20120512
YAMANE Toshiaki
Seq2Seqでボットづくり
Seq2Seqでボットづくり
Masato Fujitake
Code for iizukaとオープンデータ
Code for iizukaとオープンデータ
Kindai University
Code jp2013で行った ショートコーディング について
Code jp2013で行った ショートコーディング について
Fumihito Yokoyama
Pythonでターミナルに画像表示
Pythonでターミナルに画像表示
Masato Fujitake
Pythonでアルゴレイヴの世界に足を踏み入れる
Pythonでアルゴレイヴの世界に足を踏み入れる
ksnt
Character level CNN [CNNで自然言語処理]
Character level CNN [CNNで自然言語処理]
tdualdir
初心者が Python で戸惑ったところ
初心者が Python で戸惑ったところ
Emma Haruka Iwao
新人プログラマーが気に入ったPythonの基礎の基礎
新人プログラマーが気に入ったPythonの基礎の基礎
iPride Co., Ltd.
Python3でwebアプリ
Python3でwebアプリ
Atsushi Odagiri
Lt python腕試しネタ
Lt python腕試しネタ
kiwofusi
Twitterでネットストーカーをしよう
Twitterでネットストーカーをしよう
よしだ あつし
Python勉強会 2015-12-02
Python勉強会 2015-12-02
WoodPecker (Shizuoka Univ)
Osc2012 hiroshima
Osc2012 hiroshima
Akira Kaneda
print("Hello World")を実行する - Pythonコードからスタック型仮想マシンまで
print("Hello World")を実行する - Pythonコードからスタック型仮想マシンまで
Richard Rowland
文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析
Preferred Networks
生活に潤いを与える技術
生活に潤いを与える技術
kiki utagawa
はてブ未読管理
はてブ未読管理
kiki utagawa
Python 2/3コード共存戦略 #osakapy
Python 2/3コード共存戦略 #osakapy
敦志 金谷
あたらしい伺かを動かしてみたはなし
あたらしい伺かを動かしてみたはなし
kiki utagawa
静的型付け言語Python
静的型付け言語Python
kiki utagawa
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
kiki utagawa
S03 t2 sta_py_tsuji_0810_slides
S03 t2 sta_py_tsuji_0810_slides
Takeshi Akutsu
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)
Tetsuya Morimoto
「Python 機械学習プログラミング」の挫折しない読み方
「Python 機械学習プログラミング」の挫折しない読み方
Hiroki Yamamoto
Goで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろう
Esehara Shigeo
More Related Content
What's hot
Pythonでターミナルに画像表示
Pythonでターミナルに画像表示
Masato Fujitake
Pythonでアルゴレイヴの世界に足を踏み入れる
Pythonでアルゴレイヴの世界に足を踏み入れる
ksnt
Character level CNN [CNNで自然言語処理]
Character level CNN [CNNで自然言語処理]
tdualdir
初心者が Python で戸惑ったところ
初心者が Python で戸惑ったところ
Emma Haruka Iwao
新人プログラマーが気に入ったPythonの基礎の基礎
新人プログラマーが気に入ったPythonの基礎の基礎
iPride Co., Ltd.
Python3でwebアプリ
Python3でwebアプリ
Atsushi Odagiri
Lt python腕試しネタ
Lt python腕試しネタ
kiwofusi
Twitterでネットストーカーをしよう
Twitterでネットストーカーをしよう
よしだ あつし
Python勉強会 2015-12-02
Python勉強会 2015-12-02
WoodPecker (Shizuoka Univ)
Osc2012 hiroshima
Osc2012 hiroshima
Akira Kaneda
print("Hello World")を実行する - Pythonコードからスタック型仮想マシンまで
print("Hello World")を実行する - Pythonコードからスタック型仮想マシンまで
Richard Rowland
文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析
Preferred Networks
What's hot
(12)
Pythonでターミナルに画像表示
Pythonでターミナルに画像表示
Pythonでアルゴレイヴの世界に足を踏み入れる
Pythonでアルゴレイヴの世界に足を踏み入れる
Character level CNN [CNNで自然言語処理]
Character level CNN [CNNで自然言語処理]
初心者が Python で戸惑ったところ
初心者が Python で戸惑ったところ
新人プログラマーが気に入ったPythonの基礎の基礎
新人プログラマーが気に入ったPythonの基礎の基礎
Python3でwebアプリ
Python3でwebアプリ
Lt python腕試しネタ
Lt python腕試しネタ
Twitterでネットストーカーをしよう
Twitterでネットストーカーをしよう
Python勉強会 2015-12-02
Python勉強会 2015-12-02
Osc2012 hiroshima
Osc2012 hiroshima
print("Hello World")を実行する - Pythonコードからスタック型仮想マシンまで
print("Hello World")を実行する - Pythonコードからスタック型仮想マシンまで
文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析
Viewers also liked
生活に潤いを与える技術
生活に潤いを与える技術
kiki utagawa
はてブ未読管理
はてブ未読管理
kiki utagawa
Python 2/3コード共存戦略 #osakapy
Python 2/3コード共存戦略 #osakapy
敦志 金谷
あたらしい伺かを動かしてみたはなし
あたらしい伺かを動かしてみたはなし
kiki utagawa
静的型付け言語Python
静的型付け言語Python
kiki utagawa
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
kiki utagawa
Viewers also liked
(6)
生活に潤いを与える技術
生活に潤いを与える技術
はてブ未読管理
はてブ未読管理
Python 2/3コード共存戦略 #osakapy
Python 2/3コード共存戦略 #osakapy
あたらしい伺かを動かしてみたはなし
あたらしい伺かを動かしてみたはなし
静的型付け言語Python
静的型付け言語Python
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Similar to Python2と3の互換性問題に立ち向かうときにまずやること
S03 t2 sta_py_tsuji_0810_slides
S03 t2 sta_py_tsuji_0810_slides
Takeshi Akutsu
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)
Tetsuya Morimoto
「Python 機械学習プログラミング」の挫折しない読み方
「Python 機械学習プログラミング」の挫折しない読み方
Hiroki Yamamoto
Goで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろう
Esehara Shigeo
本気でPythonで宛名書きした話
本気でPythonで宛名書きした話
Satoshi Yamada
pythonワンライナーのすゝめ
pythonワンライナーのすゝめ
cocu_628496
Pythonのすすめ
Pythonのすすめ
Masashi Shibata
Similar to Python2と3の互換性問題に立ち向かうときにまずやること
(7)
S03 t2 sta_py_tsuji_0810_slides
S03 t2 sta_py_tsuji_0810_slides
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)
「Python 機械学習プログラミング」の挫折しない読み方
「Python 機械学習プログラミング」の挫折しない読み方
Goで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろう
本気でPythonで宛名書きした話
本気でPythonで宛名書きした話
pythonワンライナーのすゝめ
pythonワンライナーのすゝめ
Pythonのすすめ
Pythonのすすめ
Python2と3の互換性問題に立ち向かうときにまずやること
1.
Python2と3の互換性問題に 立ち向かうときに まずやること @utgwkk
2.
こんにちは
3.
4.
@utgwkk
5.
6.
第39代(副)広報
7.
(副)広報……?
8.
経緯がありました
9.
Pythonを書いている
10.
自己紹介ここまで
11.
12.
動的型付け言語
13.
機械学習・数値計算で よく使われる
14.
Rubyと似てるって よく言われる
15.
分からなければ そういうイメージで
16.
Pythonについて 調べてると 発生すること
17.
2と3ってのが あるらしいぞ
18.
このコードは2でしか 動かないっぽいぞ
19.
Python2と3の違い
20.
文字列型
21.
Python2だと?
22.
strとunicode
23.
8bit型文字列
24.
文字コード情報なし
25.
デフォルトエンコーディング
26.
ASCII
27.
マルチバイト文字列に弱い
28.
リソースを取得するたびに うまくエンコード/デコードしまく る
29.
とてもつらい
30.
Python3だと?
31.
str(unicode)
32.
文字コード情報を保持
33.
いい話
34.
以前までのstrは?
35.
bytes型として現役
36.
組み込み関数の 返り値の型の変更
37.
一例
38.
リスト→イテレータ
39.
イテレータ?
40.
要素を1つずつ返す オブジェクト
41.
リストより軽い
42.
Pythonの典型的な for文の例
43.
Python2だと?
44.
for i in
range(100):
45.
0~99までiを回す
46.
range(100)って?
47.
[0, 1, …,
99] という リストを返す
48.
for i in
range(10000000):
49.
[0, 1, …,
9999999] というリストを返す
50.
10000000個の要素 を持ったリストが都度 作られる
51.
重すぎる
52.
私はただループを回 したいだけなんだ
53.
for i in
xrange(10000000):
54.
0, 1, …,
9999999を 順に渡すイテレータを 返す
55.
軽い
56.
range いらなくない?
57.
Python3だと?
58.
for i in
range(10000000):
59.
0, 1, …,
9999999を 順に渡すイテレータを 返す
60.
いいですね
61.
range がリストを返す のに依存する実装が バグりそう
62.
range だけじゃない
63.
2でリストを返してい た組み込み関数
64.
3ではイテレータを返 すようになった
65.
標準ライブラリの 改名
66.
urllib系が特に大きく 影響を受けた
67.
他にもいろいろ
68.
整数同士の割り算
69.
例外処理の構文
70.
後方互換性の破壊
71.
古いバージョンのことは切 り捨てればよいのでは?
72.
そうもいかない
73.
我々は常に最新の バージョンのみを利用 できるわけではない
74.
時には古いバージョンの コードと付き合う 必要が生じてくる
75.
Python2から3への 移行
76.
2to3使いましょう
77.
http://docs.python.jp/3/library/2to3.html
78.
$ 2to3 -w
hoge.py
79.
Python2のコードを 3のコードに 書き換えてくれる
80.
大抵は何とかなる
81.
何とかならない場合も あります
82.
ライブラリの依存 ライブラリも Python3未対応
83.
うまくやっていきましょ う
84.
Python2と3で 互換性を維持
85.
six使いましょう
86.
$ pip install
six
87.
2と3で変更のある ところをラップ
88.
いい感じに互換性を 保つことができる
89.
Python3から2へ ダウングレード
90.
がんばってください
91.
six使いましょう (再掲)
92.
まとめ
93.
あらゆるプロジェクトが Python3に完全に移行され れば解決
94.
なかなかそうもいかないので いろいろな便利モジュールで うまく凌いでいきましょう
95.
six使いましょう (再々掲)
96.
ご清聴ありがとう ございました
97.
質問?
Download now