Windows環境で開発したwxpython GUIに
日本語を入れる方法。
Windows環境で開発したソース(日本語入り)の先頭に
下記2行追加。
-------------------------------
#!/usr/bin/local/python
# -*- coding: utf-8 -*-
-------------------------------
そしてWindows環境で開発したソース(test.py)に対し
下記を実行。
# nkf -w test.py > newfile.py
そして、下記のように実行して日本語がGUIに表示できているのが確認できる。
# python newfile.py
2010/06/01
2010/05/28
CentOS5.3でbbfreezeを使ってmatplotlibを使用したGUIをバイナリ化
ネット上で拾ったあるソース↓を
CentOS5.3でバイナリ化してみた。
-----------------------------
import math
from pylab import *
def gaussfunc(x,y,a,b):
return exp(-a*(x)*(x)-b*(y)*(y))
dx, dy = 0.05, 0.05
x = arange(-3.0, 3.0, dx)
y = arange(-3.0, 3.0, dy)
X,Y = meshgrid(x, y)
Z = gaussfunc(X, Y,1.0,0.5)*(2*X)*(4*Y*Y-2)
im = imshow(Z,origin='lower' ,alpha=.9)
colorbar(im)
cset = contour(Z, arange(-2.0,2.0,0.2), origin='lower' )
clabel(cset,
inline=1,
fmt='%1.1f',
fontsize=10)
hot()
show()
-----------------------------
バイナリ化にはbbfreezeを使用。
bbfreezeやmatplotlibのインストール方法は
以前の記事を参照。
"setup.py"という名前で下記の通り書く。
※別に"setup.py"という名前にする必要はない。
-----------------------------
from bbfreeze import Freezer
import glob
f = Freezer("dist",includes=('pangocairo',
'atk',
'matplotlib.backends',
'matplotlib.backends.backend_qt4agg',
'matplotlib.figure',
'pylab','numpy',
'matplotlib.numerix.fft',
'matplotlib.numerix.linear_algebra',
'matplotlib.numerix.ma',
'matplotlib.numerix.mlab',
'matplotlib.numerix.random_array',
'matplotlib',
'cairo',),
excludes=('_cairo',
'_gtkcairo',
'_gtkagg',
'_tkagg',
'_agg2',
'_cocoaagg',
'_fltkagg','_gtk',))
f.addScript("test.py" , True)
f()
-----------------------------
これを実行。
$ python setup.py
すると"dist"というディレクトリが作成される。
distディレクトリに移動し下記の通り必要なファイルをコピーする。
$ cp -r /usr/lib64/python2.4/site-packages/matplotlib/mpl-data .
※これをやらないとバイナリファイル実行したときに
data fileが無いって内容のエラーがでる。
そしてできあがったバイナリファイル"test"を実行。
$./test
でOK。
setup.pyには不要なincludeが入ってると思われる。
扶養なものは削ってスマートにしたい。
CentOS5.3でバイナリ化してみた。
-----------------------------
import math
from pylab import *
def gaussfunc(x,y,a,b):
return exp(-a*(x)*(x)-b*(y)*(y))
dx, dy = 0.05, 0.05
x = arange(-3.0, 3.0, dx)
y = arange(-3.0, 3.0, dy)
X,Y = meshgrid(x, y)
Z = gaussfunc(X, Y,1.0,0.5)*(2*X)*(4*Y*Y-2)
im = imshow(Z,origin='lower' ,alpha=.9)
colorbar(im)
cset = contour(Z, arange(-2.0,2.0,0.2), origin='lower' )
clabel(cset,
inline=1,
fmt='%1.1f',
fontsize=10)
hot()
show()
-----------------------------
バイナリ化にはbbfreezeを使用。
bbfreezeやmatplotlibのインストール方法は
以前の記事を参照。
"setup.py"という名前で下記の通り書く。
※別に"setup.py"という名前にする必要はない。
-----------------------------
from bbfreeze import Freezer
import glob
f = Freezer("dist",includes=('pangocairo',
'atk',
'matplotlib.backends',
'matplotlib.backends.backend_qt4agg',
'matplotlib.figure',
'pylab','numpy',
'matplotlib.numerix.fft',
'matplotlib.numerix.linear_algebra',
'matplotlib.numerix.ma',
'matplotlib.numerix.mlab',
'matplotlib.numerix.random_array',
'matplotlib',
'cairo',),
excludes=('_cairo',
'_gtkcairo',
'_gtkagg',
'_tkagg',
'_agg2',
'_cocoaagg',
'_fltkagg','_gtk',))
f.addScript("test.py" , True)
f()
-----------------------------
これを実行。
$ python setup.py
すると"dist"というディレクトリが作成される。
distディレクトリに移動し下記の通り必要なファイルをコピーする。
$ cp -r /usr/lib64/python2.4/site-packages/matplotlib/mpl-data .
※これをやらないとバイナリファイル実行したときに
data fileが無いって内容のエラーがでる。
そしてできあがったバイナリファイル"test"を実行。
$./test
でOK。
setup.pyには不要なincludeが入ってると思われる。
扶養なものは削ってスマートにしたい。
CentOS5.3にbbfreezeをインストールする
easy_install のインストール
bbfreeze(フローズンバイナリ作成ツール)はCentOSのリポジトリには含まれていないので、
自分でソースをとってきてインストールする必要あり。
そんなときに重宝するのが easy_install 。
easy_install は python のパッケージの管理を容易にするためのツールで、
パッケージのダウンロードから、ビルド、インストール、
それにインストール済みパッケージのアップデートや削除などを行える。
bbfreezeもeasy_install に対応しているので、かんたんにインストールできる。
さて、easy_install 自身のインストールに関して、easy_install は setuptoolsに含まれていて
これは CentOSのBaseリポジトリで管理されているので、インストールはyum一発。
(1)setuptoolsのインストール
# yum install python-setuptools (rootで)
(2)bbfreezeのインストール
# easy_install -U bbfreeze (rootで)
何かエラーが出た。
"yum install -U python-setuptools"を試せ(-U オプションはupgrade)と言われてる
ようなのでその通り実行。
# yum install -U python-setuptools
んで、再度下記を実行。
# easy_install -U bbfreeze
うまく入ったっぽい。
(3)バイナリ作成
http://python.matrix.jp/modules/bbfreeze.html
にあるようにスクリプト(setup.py)を作成。
-----------------------------------
from bbfreeze import Freezer
f = Freezer( "dist")
f.addScript("test.py" , True)
f()
-----------------------------------
その後、
$ python setup.py
を実行するとディレクトリdistが作られ、
その中にtestというファイル名の実行ファイルができている。
bbfreeze(フローズンバイナリ作成ツール)はCentOSのリポジトリには含まれていないので、
自分でソースをとってきてインストールする必要あり。
そんなときに重宝するのが easy_install 。
easy_install は python のパッケージの管理を容易にするためのツールで、
パッケージのダウンロードから、ビルド、インストール、
それにインストール済みパッケージのアップデートや削除などを行える。
bbfreezeもeasy_install に対応しているので、かんたんにインストールできる。
さて、easy_install 自身のインストールに関して、easy_install は setuptoolsに含まれていて
これは CentOSのBaseリポジトリで管理されているので、インストールはyum一発。
(1)setuptoolsのインストール
# yum install python-setuptools (rootで)
(2)bbfreezeのインストール
# easy_install -U bbfreeze (rootで)
何かエラーが出た。
"yum install -U python-setuptools"を試せ(-U オプションはupgrade)と言われてる
ようなのでその通り実行。
# yum install -U python-setuptools
んで、再度下記を実行。
# easy_install -U bbfreeze
うまく入ったっぽい。
(3)バイナリ作成
http://python.matrix.jp/modules/bbfreeze.html
にあるようにスクリプト(setup.py)を作成。
-----------------------------------
from bbfreeze import Freezer
f = Freezer( "dist")
f.addScript("test.py" , True)
f()
-----------------------------------
その後、
$ python setup.py
を実行するとディレクトリdistが作られ、
その中にtestというファイル名の実行ファイルができている。
2010/05/27
CentOS5.3にmatplotlibをインストール
pylabはインターフェイスで、本体はmatplotlibなので、それをインストールする。
また、そのままだとyumではlapackがインストールされないので、それも入れる。
yumでインストールするには
前回の記事のようにリポジトリを追加しとく必要があるかも。
# yum install python-matplotlib
# yum install lapack
ネットで拾ってきたmatplotlibを使ったサンプルを
動かそうとしらたnumpyってモジュールが無いと怒られた。
CentOSのパッケージマネージャでnumpyを検索したら出てきたので
それをインストール。
無事サンプルが動いた。
また、そのままだとyumではlapackがインストールされないので、それも入れる。
yumでインストールするには
前回の記事のようにリポジトリを追加しとく必要があるかも。
# yum install python-matplotlib
# yum install lapack
ネットで拾ってきたmatplotlibを使ったサンプルを
動かそうとしらたnumpyってモジュールが無いと怒られた。
CentOSのパッケージマネージャでnumpyを検索したら出てきたので
それをインストール。
無事サンプルが動いた。
2010/04/27
CentOS5.3にwxPythonをインストール
yumでインストールする。
CentOSではそのままではyumでwxPythonはインストールできない。
※Fedoraではできる。
なのでCentOSにyumのリポジトリを追加してインストールを試みた。
【CentOS yum dag リポジトリの追加方法】※参考サイト
Fedora などのOSを使用していた方がCentOS へ乗り換えた場合、
Fedoraではyum でインストールできたものが yum の list で発見できずつまずくことがあります。
# yum list
Fedora ではパッケージとして認めているものが CentOS (RedHat) だとまだ公認でなかったりするためです。
そこで、 dag リポジトリ を追加することで解決します。
設定は簡単です。
# vi /etc/yum.repos.d/dag.repo で下記の内容を書き込み保存するだけです。
[dag]
name=Dag
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag/
enabled=1
gpgcheck=1
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
あとは、通常どうり
# yum list
【wxPythonのインストール】
# yum install wxPython
これだけ。
あとは
find / | grep demo.py
とかでデモを探して
python demo.py
で実行。うまくいった。
ちなみに、上記方法でのwxPythonのインストールは
CentOS5.3に始めから入っているpython2.4で行った。
python2.6で上記方法でやっても
-----
Fatal Error: Mismatch between the program and library build versions detected.
The library used 2.8 (no debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.4,compatible with 2.6),
and wxPython used 2.8 (no debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6).
アボートしました
-----
って出る。
CentOSではそのままではyumでwxPythonはインストールできない。
※Fedoraではできる。
なのでCentOSにyumのリポジトリを追加してインストールを試みた。
【CentOS yum dag リポジトリの追加方法】※参考サイト
Fedora などのOSを使用していた方がCentOS へ乗り換えた場合、
Fedoraではyum でインストールできたものが yum の list で発見できずつまずくことがあります。
# yum list
Fedora ではパッケージとして認めているものが CentOS (RedHat) だとまだ公認でなかったりするためです。
そこで、 dag リポジトリ を追加することで解決します。
設定は簡単です。
# vi /etc/yum.repos.d/dag.repo で下記の内容を書き込み保存するだけです。
[dag]
name=Dag
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag/
enabled=1
gpgcheck=1
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
あとは、通常どうり
# yum list
【wxPythonのインストール】
# yum install wxPython
これだけ。
あとは
find / | grep demo.py
とかでデモを探して
python demo.py
で実行。うまくいった。
ちなみに、上記方法でのwxPythonのインストールは
CentOS5.3に始めから入っているpython2.4で行った。
python2.6で上記方法でやっても
-----
Fatal Error: Mismatch between the program and library build versions detected.
The library used 2.8 (no debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.4,compatible with 2.6),
and wxPython used 2.8 (no debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6).
アボートしました
-----
って出る。
2010/04/14
CentOS5.3でPython2.6を使う。
CentOS5.3でPython2.6を使う。
CentOS5.3にインストールされているPythonは2.4で、
yum(パッケージ管理システム)などPythonで書かれたシステムで使われているらしい。
上書きするのは危険っぽい。
そこで元々入っているPythonとは別にインストールする。
また、そのときにこちらのサイト(といってもほぼ丸写しかも)を参考にしました。
CentOS5.3にPython2.6でDjango1.1の開発環境を作成する - やさしいデスマーチ
CentOS5にpython2.6+Django+mod_python+色々の環境を整える - とはえ領域
というかこのページ自体、下記ページのほぼ丸写し。
CentOS5.3にPython2.6をインストールする - aoshiman.org
下準備
zlib-develはsetuptoolsで、sqlite-develはsqlite3を使うのに必要なのであらかじめyumでインストール。
$ yum install zlib zlib-devel sqlite-devel
Python2.6のセットアップ
こちらのサイトからソースコードをダウンロードして、ビルドインストールします。
$ wget http://www.python.org/ftp/python/2.6.2/Python-2.6.2.tgz
$ tar zxvf Python-2.6.2.tgz
$ cd Python-2.6.2
$ ./configure --prefix=/usr/local --enable-shared
もしかしたら--prefix=/usr/localは必要ないのかも。
configure後にSetupに記述されている箇所を下記のように修正。zlibをインクルードしたい為。
$ vi Modules/Setup
#コメントをはずす
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
make make installします。
$ make
$ make install
libpython2.6.soとlibpython2.6.so.1.0をコピーします。
$ cp /root/Python-2.6.2/libpython2.6.so /usr/lib/
$ cp /root/Python-2.6.2/libpython2.6.so.1.0 /usr/lib/
バージョン確認。
$python -V
Python 2.6.2
libpython2.6.so.1.0とか見つからないぞと怒られる場合は
.bashrcでlibpython2.6.so.1.0のある場所(/usr/local/lib)の
パスを設定したらうまくいった。
以下.bashrcの例。
-------------------------------
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/lib:$LD_LIBRARY_PATH
-------------------------------
CentOS5.3にインストールされているPythonは2.4で、
yum(パッケージ管理システム)などPythonで書かれたシステムで使われているらしい。
上書きするのは危険っぽい。
そこで元々入っているPythonとは別にインストールする。
また、そのときにこちらのサイト(といってもほぼ丸写しかも)を参考にしました。
CentOS5.3にPython2.6でDjango1.1の開発環境を作成する - やさしいデスマーチ
CentOS5にpython2.6+Django+mod_python+色々の環境を整える - とはえ領域
というかこのページ自体、下記ページのほぼ丸写し。
CentOS5.3にPython2.6をインストールする - aoshiman.org
下準備
zlib-develはsetuptoolsで、sqlite-develはsqlite3を使うのに必要なのであらかじめyumでインストール。
$ yum install zlib zlib-devel sqlite-devel
Python2.6のセットアップ
こちらのサイトからソースコードをダウンロードして、ビルドインストールします。
$ wget http://www.python.org/ftp/python/2.6.2/Python-2.6.2.tgz
$ tar zxvf Python-2.6.2.tgz
$ cd Python-2.6.2
$ ./configure --prefix=/usr/local --enable-shared
もしかしたら--prefix=/usr/localは必要ないのかも。
configure後にSetupに記述されている箇所を下記のように修正。zlibをインクルードしたい為。
$ vi Modules/Setup
#コメントをはずす
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
make make installします。
$ make
$ make install
libpython2.6.soとlibpython2.6.so.1.0をコピーします。
$ cp /root/Python-2.6.2/libpython2.6.so /usr/lib/
$ cp /root/Python-2.6.2/libpython2.6.so.1.0 /usr/lib/
バージョン確認。
$python -V
Python 2.6.2
libpython2.6.so.1.0とか見つからないぞと怒られる場合は
.bashrcでlibpython2.6.so.1.0のある場所(/usr/local/lib)の
パスを設定したらうまくいった。
以下.bashrcの例。
-------------------------------
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/lib:$LD_LIBRARY_PATH
-------------------------------
登録:
投稿 (Atom)