Python

Macでのpython環境の整理

自分のMacのpython環境がごちゃごちゃになってしまって、昔動いたスクリプトが動かなくなったり、とかあって整理しなくてはと思っていた。同じような状況の方がいたので、参考にさせてもらう。 Python環境の整理、、、 - aremokoremo やったこと。 $ sudo po…

ソフトウェアにタイマーを組み込む

ソフトウェアにタイマーのようなものを仕込みたい。 例えば、ある時間が経過すると何かが発動するようなもの。用途はいろいろ考えられるが、ユーザーに提供するお試し版ソフトウェアをある期日まで使用可能とし、それ以降は起動できないようにする、とか。悪…

PythonスクリプトをPyInstallerで実行モジュール化するときに出てきた問題点

PyInstallerを使って、Pythonスクリプトをバイナリに固める。固めたバイナリを実行すると、ファイルパスの問題でうまく動かないときがある。どのような場合に動かないかを、まずは示す。ファイル構成は下記の通り。ソースがexample.py、ソースが読み込んでい…

Pygameに関する日本語の本

Pythonゲームプログラミング入門Will McGugan 杉田臣輔 アスキー・メディアワークス 2011-06-23売り上げランキング : 410026Amazonで詳しく見る by G-Toolspygame本。書いてあることがクリアで、非常に読みやすかった(日本語訳が自然でとても良いと思う)の…

 デバッグ作業中

スクロールするパネルの上にタブを置く。 このとき、作ったプログラムがおかしな挙動を示すので、簡単な例から原因を追及する。 取り急ぎ作成のプロトタイプは、全く異常なし。予想通りの動作を示す。 ソースコード。 import wx import wx.lib.scrolledpanel…

 wxPythonコードのスタイルガイド

StdDialogButtonSizerについて調べていたら、wxPythonコードのスタイルガイド(全10項目)を見つけたので、内容を確認し今後書くコードにできるだけ反映させたい。これに準ずるように努力すれば、クリアでPythonicなコードになるらしい。以下引用の出典:wxP…

ボタンを並べる順番を迷ったときに使うSizer

←Linuxでの表示 ←Windowsでの表示ダイアログにボタンを配置する場合、「Yes」「No」であったり、「Cancel」「OK」であったり、複数のボタンを並べなければいけなくなると、どう配置したらいいか迷ってしまう。その上、ダイアログが増えてくると、あっちのダ…

pythonのTemplateで「$」をそのまま使いたい

templateを使うとき、「$」が付いた文字列は常に置換されてしまう。 >>> from string import Template >>> s = Template('$who likes $what') >>> s.substitute(who='tim') Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> s.substitute(who='tim'</module></pyshell#2>…

音声を可視化したい(4)

2011-11-11 - 理想のユーザ・インターフェイスを求めての続き。 日常の音を録音したファイルから、得られた波形を周波数分解する。何も考えずに、フーリエ変換のライブラリを使ってみた。ソースは下の通り。 # sound02.py import numpy as np import matplot…

音声を可視化したい(3)

通勤途中に録音した、道路沿いの音をグラフにしてみる。 トラックが頻繁に通っているとき(サンプル1)と、車の音がほとんど聞こえない公園内(サンプル2)の音を記録した。携帯で録音するとamrという拡張子の音声ファイルになる。このファイルをwavファイル…

音声を可視化したい(2)

2011-11-01 - 理想のユーザ・インターフェイスを求めての続き。波のデータをスペクトル解析したい。どの周波数成分がドミナントになっているかとか。まずは、フーリエ変換のライブラリを試す。(参考サイト:高速フーリエ変換(FFT) - 人工知能に関する断創…

音声を可視化したい

pythonのwaveモジュールで、音声を波形化する。以下のサイトで下調べ。 参考サイト: http://www.python.jp/doc/nightly/library/wave.html#wave.Wave_read.getframerate 2011-05-19 wavファイルのデータから「波のグラフ」が描けるらしい。確かに描ける。し…

virtualenvでテスト環境を構築

Pythonの話。 試してみたいライブラリがあるとき、そのライブラリを一度インストールしてしまうと、やっぱやめた、というときに実行環境の原状復帰がなかなか難しいという問題がある。復帰の際に環境を壊してしまって、今まで動いていたものも動かなくなるの…

バーチャルリストでリスト表示を低負荷に行う

wxPythonでGUIを作るときの話。wxListCtrlでリストを作成して表示する。しかし、リストが大きくなると表示にかかる時間やメモリの消費量も無視できなくなってくる。そのような場合のために、「バーチャルな」リストコントロールというものがある。リストの中…

 今日のエラー

OpenGLを使ったコードを、PyInstallerでフローズンバイナリ化するも、実行しようとすると動かない。実行時に表示されるメッセージ。 No handlers could be found for logger "OpenGL.arrays.arraydatatype"PyInstallerを使うときの設定をどうにかしなければ…

別のプロセスが、同じファイルを開いて書き込むことができるかどうかのテスト

同時に実行されている別のプロセスがある。そのプロセスが同じファイルに書き込みをしたい。そういうことができるかどうか、ふと疑問に思ったので簡単なプログラムで確認してみる。2つテストコードを書く。まず、最初に実行する方。 import time fp = open('…

編集可能な表をwxListCtrlで作成する

wxListCtrlで作成した表において、セルの値を直接編集することはできない。SetStringItemメソッドで、値を変えることはもちろんできるが。ここでの直接編集とは、マウスで表のセルをクリックして値をキーボードから入力するようなことを指す。wxGridなどを使…

gifアニメーションを、wxの画面上で再生する方法

gifのアニメーションファイルは、通常の画像ファイルのようにwx.StaticBitmapで画面に貼り付けても静止画として表示されるだけ。アニメーションを再生させるには貼り付け方を変えなければいけない。どう変えるか? wxPythonのデモの中に、複数のgifアニメー…

デジタルフォトフレームの動作をwxPythonで実装する(4) -Windowsではちゃんと画面遷移する-

同じコードをWindowsで実行すると、ちゃんと画面遷移する。途中で固まったりしない。問題なし。 実は問題がある。表示される画像サイズがフレームと合っていない。 なぜこんなことになるのか不明。ちゃんとスケールしているのに。

デジタルフォトフレームの動作をwxPythonで実装する(3) -Linuxでは少しまともに動く-

昨日(デジタルフォトフレームの動作をソフトウェア的に実装する - 理想のユーザ・インターフェイスを求めて)のコード実行時のエラーなのだが、うちのMacでだけ起こるエラーのようだ。Linux環境で実行したらエラーが再現されなかった。 (▲Chromeの画像を表示…

デジタルフォトフレームの動作をソフトウェア的に実装する(2) -wxPythonの出番-

デジタルフォトフレームで実現している自動的な画像切り替えの動作を実装することが目標である。フォトフレームでなくても、スクリーンセーバーなんかでも見られる自動画像切り替えをどう実現するか、を自分のアタマで考えていろいろと試してみたい。 とりあ…

 デジタルフォトフレームをソフトウェア的に実装する(1) -試しにPILで特定のディレクトリの画像を順番に表示-

電車の中でデジタルフォトフレームの広告を見たとき、フォトフレームで実現している画像切り替えはソフトウェア的にどう実装できるかな、とふと考えた。 そこで、デジタルフォトフレームのように表示する画像を、ある時間間隔で切り替えるデスクトップアプリ…

matplotlibでのTypeError

ログスケールでグラフをプロットしようとすると、 TypeError: coercing to Unicode: need string or buffer.というエラーが起こる。環境は以下の通り。 Python 2.6.2 matplotlib 0.99.1 ソースを実行しても問題は生じないが、PyInstallerでパッケージ化して…

画像ファイルを分割して別々のファイルとして保存する

1つの画像ファイルを読み込んで、15パズル用に4x4の16分割したファイルとして保存したい。PIL(Python Imaging Library)を使えば、この処理も簡単にできてしまうのがPythonの凄いところ。 今回行う処理内容は上の図の通り。1枚の絵を16分割する。 一連の処理…

ラバーバンドの表示

あとで書く。 from OpenGL.GL import * from OpenGL.GLUT import * MAXPOINTS = 100 point = [[0, 0]]*MAXPOINTS pointnum = 0 rubberband = 0 savepoint = [0, 0] def display(): glClear(GL_COLOR_BUFFER_BIT) if pointnum > 1: glColor3d(0.0, 0.0, 0.0) …

マウスで線を引く(Pythonでリストのリストのアイテムの値を変える)

OpenGLで絵を描く練習をいろいろとやっている。 GLUTによる「手抜き」OpenGL入門を読みながら、サンプルコードをPythonコードに変換している。今回は、マウスで画面に線を引くサンプルコードを変換した。 ここで、マウスでドラッグする始点と終点をpointとい…

マウスでオブジェクトを選択する(2)

OpenGLで描画した物体をマウスで選択していろいろとやってみたい。セレクションという機能を使って実現するのだが、その練習をやってみる。 前回(http://d.hatena.ne.jp/Megumi221/20110421)に続いて、セレクションを使ったサンプル(アニメーション版)をPyt…

マウスでオブジェクトを選択する(1)

OpenGLで描画した物体をマウスで選択していろいろとやってみたい。セレクションという概念を使って実現するみたいだが、その練習をやってみる。 参考サイト GLUTによる「手抜き」OpenGL入門(今までにあった質問) プログラム技術研究(マウスによる選択) …

描画した図形をマウスで操作する(9)

PythonのOpenGLライブラリを用いて、3次元図形の描画を行う練習をしている。 マウスで物体を回転したり平行移動したりしたかったのだが、回転と平行移動を組み合わせるとうまくいかない。そこで、とりあえずは平行移動をあきらめて、現状のコードをまとめる…

描画した図形をマウスで操作する(8)

PythonのOpenGLライブラリを用いて、3次元図形の描画を行う練習をしている。とりあえずは以下のプロセスに沿って、いろいろと機能を試して練習を進めている。 なんでもいいので3次元の図形を描画する(practice1.py) 描いた図形をマウスで回転できるようにす…