Python 33->34 Upgrade 移行

Python 3.3 を 3.4 に移行した



環境は Windows 8 (64bit) で installしていたPython は 3.3 (32bit)。問題があって、
u'test'.encode('ascii')
 と入力すると、asciiエンコーディングが欠損しているらしく、
 "LookupError: unknown encoding: ascii"
のような返事が返ってくる。このせいでpandasをinstallできない。そこで、この機会にpythonを3.3から3.4に移行してスッキリした。備忘録も兼ねて記録。

まずはファイルを避難

とりあえず、今まで作ったファイルがC:/Python33以下のフォルダに入っていたので、それをデスクトップに避難させた。

アンインストール

プログラムの追加と削除を見ても、外部モジュールのnumpyやpillowはあるのに、python自体はなかった。これではアンインストールできないじゃないか。細かいことは忘れてC:\Python33をまるごとゴミ箱に葬ってみた。何も問題なかった。プログラムの追加と削除から外部モジュールも順番に葬った。と思ったら、
C:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python 3.3
にuninstall.mscみたいな名前のファイル (実行したらファイルが消えたので名前が確認できない) があった。

Pathの変更

コントロールパネル -> システムとセキュリティ -> システム -> システムの詳細設定 -> システム環境変数->Path

BeforeAfter
C:\Python33C:\Python34
C:\Python33\ScriptsC:\Python34\Scripts


もし未だパスを通したことがなければ、次の入力で通る。pythonインストール時にOKを連打し通常インストールした場合、C:\Python34にpythonはインストールされているはず。次のコマンドでは半角スペースはどこにも入れてはいけない。pathの中身はecho %path%で確認できる。

path=%path%;C:\Python34
path=%path%;C:\Python34\Scripts

以下でコマンドプロンプトからPythonやpip, easy_installを使う場合、pathが通っていないといけない。pathを通さずに使うというと、毎回
C:\Python34\python.exe
と打つ必要がある。これを省略し
python
と打つだけで実行するためにpathを通す。pythonと打ったとき、探すフォルダを上記コマンドによって加える。

Python34のインストール

Python.orgからpython-3.4.2.msiをダウンロード して実行。ENTERキー連打。既にC:\Python34にpathは通っているはずなので、コマンドプロンプトでpythonと打つと、C:\Python34\python.exeが呼ばれて
Python 3.4.2 (v3.4.2:ab2c023a9432, Oct  6 2014, 22:15:05) [MSC v.1600 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
と表示されるはず

easy_install をインストール

下記のファイルを名前をつけて保存して、コマンドプロンプトでpython ez_setup.pyをして実行
実行する場所は保存した場所に気をつける。このとき、既にpathは上記の変更にしたがって通っているはず。

pipをインストール

コマンドプロンプトにてeasy_install pipとしてpipはインストールされる。
pip --versionとすれば、インストールされていることを下記のように確認できる
pip 1.5.6 from C:\Python34\lib\site-packages (python 3.4)

numpyのインストール

pip install numpy
で終わり。数分かかった。

scipyのインストール

pip install scipyでエラー。
下のリンク先からscipy‑0.14.0.win32‑py3.4.exeを選んで展開先へ移動してeasy_install scipy-0.14.0.win32-py3.4.exe とした。
http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy
ログの最後に
Installed c:\python34\lib\site-packages\scipy-0.14.0-py3.4-win32.egg
Processing dependencies for scipy==0.14.0
Finished processing dependencies for scipy==0.14.0
と出て終了

matplotlibのインストール

pip install matplotlibとすると、ログの果てに
Successfully installed matplotlib six python-dateutil pyparsing
Cleaning up...
と出ておわり。これは使うにはnumpyとscipyを要求する。インストールの順番は関係するのか知らない。

Pillowのインストール

pip install pillow
で余裕

pandasのインストール

これがPython33ではできなかった。そもそもPython33がちゃんとインストールされていなかったのか、asciiエンコーディングがないと怒られてダメだった。
pip install pandasとした
途中、numpy intからintへの変換でデータが失われる可能性があるみたいな脅迫があったが、待つこと数分、多大なwarningのようなログを残してインストールは成功した。
>>> import pandas
>>>

Scikit-Learnのインストール

機械学習ライブラリ
pip install scikit-laern

ここまで見て気づいたけど、黒字に白、白地に黒は目がチカチカして見づらい。bloggerの記事のデフォルトは、僕の目には文字が黒みのグレーになっているように見え、今気づいたけどコマンドプロンプトは黒字に白身のグレーかもしれない。

追記(Nov. 18, 2014)
sklearn.datasetsが読み込もうとすると次のエラーに当たるときの対策を別記事に書きました
ImportError: DLL load failed: The specified module could not be found.
http://naokiwatanabe.blogspot.com/2014/11/python-scikit-learndatasets.html

MeCab-Pythonのインストール

自分の記事 http://naokiwatanabe.blogspot.jp/2014/09/mecab.html 参照。


iPythonのインストール
pip install ipython
でインストール。
コマンドプロンプトからipythonと入力して使ってみると
In [1]: i
In [1]: im
In [1]: imp
In [1]: impo
In [1]: impor
In [1]: import
In [1]: import
In [1]: import n
In [1]: import nu
In [1]: import num
In [1]: import nump
In [1]: import numpy
In [1]: import numpy
のように一字打つごとに入力が返ってくることがある。わけわかめ。ちなみにipython qtconsoleというコマンドで色分けできる。

tweepyのインストール

pip install tweepy
とすると、python2系の文法にぶつかったっぽいエラーが返ってきた。
Python3には対応していないとのことで、使っている人がいない。あれ、今まで使っていたPython33ではちゃんと動いていたんだけどなあ。とりあえず保留で。

インストールされたものの確認

pip freeze

で確認できる

Pillow==2.6.1
ipython==2.3.0
matplotlib==1.4.0
mecab-python==0.996
numpy==1.9.0
pandas==0.14.1
pyparsing==2.0.3
pyreadline==2.0
python-dateutil==2.2
pytz==2014.7
scikit-learn==0.15.2
scipy==0.14.0
six==1.8.0

コメント

人気の投稿