2014/03/19

python2.7で動いてたモノをpython3.3で動くよう修正したまとめ

python3.3で実行して、エラーが出たら対応して、動くまで繰り返す。

---
ImportError: Bad magic number in hogehoge.pyc

参考:http://linux.oboe-gaki.com/archives/000369.html
古いpythonの *.pyc が残っているとダメらしい。*.pyc を全部消して対応した。

rm -rf *.pyc

---
ImportError: No module named 'hogehoge'

run.py
directory
├ hoge.py
├ fuga.py

上記のようにファイルが並んでるとき、python2.7 はこれで動いてた

hoge.py
from Fuga import ClassName

python3.3 にしたら、from のところを変えないとダメだった

hoge.py
from directory.Fuga import ClassName

このあたりの秩序をあとで調べないとな、と思いつつ今は先に進む。

---

小さいコードだったためなのか、これだけで済んだ。
python2系と3系の変更点をちゃんと調べないとなぁ、とは思っている。

intelliJで書いてたプロジェクトをpython2.7からpython3.3に変えて動かす

Run > Edit Configuration > Use specified interpreter

で、使いたいpythonのバージョンを指定する。

2014/03/11

pythonbrewで異なるバージョンのpythonを使い分けるメモ

自分はpythonbrewで python 2.7.2 を使い続けていたが、3.3.0 でも動くコードにしておきたいと思い、両方のバージョンの環境を作ることにした。その自分用メモ。

もともと pythonbrew の仮想環境で 2.7.2 を使っていた。

% which python // 確認
  /Users/satoshi_nagata/.pythonbrew/venvs/Python-2.7.2/{hoge}/bin/python

python 3.3.0 をインストールして、それを使うように設定する。

% pythonbrew install 3.3.0
% pythonbrew switch 3.3.0

仮想環境の設定して、それを使う。

% pythonbrew venv list // 今ある仮想環境の一覧
% pythonbrew venv create {fuga}
% pythonbrew venv use {fuga}

※ pythonのバージョンをまたぐ仮想環境の切り替えは、先にpythonのバージョンをswitchして、仮想環境を選ぶ。

元の 2.7.2 環境で使っていたパッケージを、新しい環境でも使いたい。pipでインストールした一覧を表示する

% pip freeze

※ pip freeze で出力したパッケージを別の環境でまとめてインストールする方法もあるが、今回はパッケージを整理する目的もあったためやっていない

※ 前は "pip list" で表示できた気がするが、今は違う...?