Help us understand the problem. What is going on with this article?

python2からpython3に対応させる時に詰まった事

More than 1 year has passed since last update.

はじめに

python2からpython3に環境を切り替えたのですが、色々と詰まった部分があったのでここに記載しておきます。

詰まった部分

1. pipが異なる

当たり前ですが…
linux系でやっているとpipがpython2でpip3がpython3に紐付いています。
必要なモジュールはpip3でインストールし直しましょう。

pip install xxxx  # <-X
pip3 install xxxx # <-O

2. 対応しないモジュールがある

例えばSimpleHTTPServerではなくhttp.serverなどになっています。
まぁ実行時に怒られるので分かると思いますが…
ちなみにSimpleHTTPServerの以降につては、http.server内に似たクラスがありますので、そちらを利用すれば簡単に移管できます。

3. bytes型の登場

これまで利用していたモジュールで文字列を返した関数が、これになっている例が多いです。
こんな感じで、文字コード指定して文字列に直してあげましょう

# x = bytes型
x.decode('utf-8')

4. エラー発生時の変数Exceptionmessageが利用できない

これは見逃すとエラー発生時のみしか発生しないバグを含んでしまうので、気をつけてください。

最後に

他にも色々とあるかと思いますが…
ご指摘やご意見ある方はコメント部分にください。

ありがとうございました。

hashito
わたしです。 主に個人的なメモです。
https://hashito.biz/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away