Dev-Python

py2exe覚え書き (Tixを使用したパッケージを作成)

py2exeでwindowsのパッケージを作成する場合、GTKやPyGTKだとそれなりに苦労せずに作成することができたのですが、Tix(Tkinterの拡張モジュール)を使用している場合には、なかなかうまくいきませんでした。いろいろ調べたところ、解決方法がありましたので、…

TixのNoteBookのバグについて(続報)

先日書いた、TixのNoteBookのバグについて、SourceForgeのバグトラックのページに同様な報告があったので、コメントとして追記してみました。英語で文章を書くのは苦手なので、内容が伝わるかどうかが問題ですけどね。。(笑少しだけ貢献できたかも。。

Pythonモジュール「Tix」にバグかも

今日はTkinterとTixでいろいろやっていたのですが、どうやらTixモジュールのほうにバグがあるようです。。。症状としては、 ・Tix.NoteBookにタブが1つだけの状態でpages()という関数を使用すると、トレースバックが表示される。 というものです。再現させ…

pythonメモ  pythonw.exeの注意点

ご存知の方も多いと思いますが、今日、はまってしまったのでメモしておきます。 ソースコード中にprint文を書いて、変数の値とかを出力している場合、の注意点です。このメモはWindows環境でpythonw.exeでスクリプトを起動した場合に発生します。現象として…

プラグインマネージャクラス(PluginMgr)に機能追加。

先日から紹介しているプラグインマネージャクラスに機能を追加しました。 追加した機能は ・プラグインのごとに、動作中の状態を保存しておけるように。 となっています。プラグインの中には、動作中に設定された内容を次回起動時にも覚えておきたいものも多…

Pythonの文字コード変換(Windows)

今日は新しい発見がありました。(知らなかったのは私だけ。。かも)Windowsの環境でunicode文字列→shift-jisに変換しようとすると、エラーになってしまう文字がありました。たとえば、"〜"とかです。 a = u'〜' b = a.encode('shift-jis') とすると、エラー…

Scribesのソースを眺めてみました。

昨日インストールしたエディタScribesのソースコードを眺めていました。 まだあまり深くは観れていないのですが、自分がPythonの入口をうろうろしていたことがよくわかりました。というのは、私はnew-style classについてはほとんど知らなかったからです。 S…

pythonでプラグイン管理のしくみを作ってみました。

先日作ったファイルコピーツールにプラグイン機能を追加する時にも使えるかな。。。と思いながら、簡易プラグイン管理クラスを作ってみました。クラスの名前はPluginMgrです。(あまりにも安易な名前ですけどね。。)このPluginMgrは以下のことを行います。 …

ファイルコピーツールのオプション設定クラスのソースを更新

先日掲載したオプション設定クラスのソース が間違っていたので、修正したものと差し替えました。 前回掲載したものだと、 ・XML中の'True'や'False'をBoolean値としてのTrue, Falseに変換できていませんでした。 ・プリファレンスクラスへの値の設定(set_va…

ファイルコピーツールのオプション管理クラス

今日は、最近ちくちくと作っているツールの動作オプションを管理するクラスを作りました。 とはいっても、オプションを管理するほど多機能ではないんですけどね。(笑とりあえず、ソースコードはこんな感じです。 # -*- coding: utf-8 -*- import types impo…

ctypes覚書

(1) ctypesのバッファにpythonの文字列を設定する方法 from ctypes import * # ctypesのバッファを作る ctypes_buff = (c_byte * 100)() # pythonの文字列 pystr = 'abcdefg' # ctypesのバッファとpython文字列の長さのうち短いほうを調べ、 # コピーするサ…

py2exeのsetup.pyについての覚え書き

PyGTK, GTK, Pythonで作ったものをWindowsの実行形式にまとめるツールとしてはpy2exeは有名ですよね。今日はsetup.pyの書き方のメモです。py2exeって、メインのスクリプトをsetup.pyに指定しておくと、importしているpyファイルをかき集めてパッケージにして…

ctypesの教訓

今日はctypesでハマりました。。。 Windows環境でctypesを使って、外部のDLLを利用するスクリプトを書いたのですが、 動作を確認してみると、なんだかDLLの関数にうまく引数が渡されていませんでした。。。最初は、構造体のアライメントかな。。。と思ってい…

emacsからpdb

今日は普段pythonのコードを書くときに使っているemacs上でpdbを使ってみました。 昨日ダウンロードしたwinpdbもよかったですが、emacs上でのpdbもなかなかいいもんですね。pdbはブレークポイントを設定するときに、 b 行番号 b ファイル名:行番号 などとい…

winpdbをインストールしてみました。

今日は、pythonデバッガのwinpdbをインストールしてみました。 ArchLinuxのパッケージリポジトリにはなかったようなので、winpdbのサイトからパッケージを取得してきました。インストールの方法はとっても簡単。 (1) ダウンロードしたファイルを解凍しま…

pdbでデバッガの勉強開始

今日から少しづつPythonのデバッガの勉強を始めることにしました。 pdbでも十分といえば十分なんですが、前々からデバッガってどうやって作るんだろう。。と興味はあったので。DDDもいまひとつ使いかたがよくわからないし。。(汗 ゆくゆくは自前のデバッガ…

Pythonコードの高速化

blender.jpでPythonコードの高速化についての記事が紹介されていましたので、実際に試してみました。紹介されていた記事には、いろいろな種類の最適化方法が紹介されていて、とても勉強になりました。 (yamyamさん、ありがとうございました)今回私が試した…

デバッガのフロントエンド「DDD」

以前にもDDDについては何か書いたかもしれませんが、とりあえず覚え書きとして。 DDDは様々なコマンドラインデバッガのフロントエンドとして動作します。 以下のコマンドラインデバッガを切り替えることによって、いろいろな言語のデバッグを することができ…

Exaileで日本語が化け改善プラグインひと段落

前回掲載したPythonのスクリプトを、Exaileのプラグインにしてみました。 今回のプラグインは、OGGリッピング用のプラグインとは別にしました。 リッピングするまで曲名が化けて表示されるのも使い勝手が悪いので単体で使用できる ようにと思って。プラグイ…

CDDBの日本語文字列取得実験成功。

先日から、CDDBからCDの情報を取得する実験をしていました。 とりあえず、解決しそうなので、中間報告です。Pythonで実現する一般的な方法は、CDDBとDiscIDをつかって 日本語に対応しているCDDBサーバの情報を取ってくるという方法だと 思います。。。が。。…

Exaileで日本語が化ける原因

タイトル等に日本語が含まれている場合、Exaileではそれらが文字化けしてしまいます。 いろいろ調べてみたら、なんとなく原因がわかりました。(1)まず、なんといってもCDDBのサーバが指定できないので、日本語に対応したCDDBを 選択できません。これは結構致…

Linuxのオーディオプレーヤ Exaile を拡張する

久々の更新です。 今回はExaileというLinuxのメディアプレーヤのプラグインを作ってみたので ご紹介しようと思います。他にもAmarokというメジャーなメディアプレーヤ もあるのですが、私はGTKベースのアプリケーションの方が好きなので Exaileを使っていま…

スクリーンショットツール、ひとまず完成。

以前、scrot というスクリーンショットツールのUIをPython + PyGTKで 作成中という記事を書きました。↓こんな感じのやつです。そのときに抱えていた問題が解決しました!!そのときの問題は、・スクリーンショットを取るボタンを押した時にウインドウを非表…

XFCEのpythonバインディング

XFCEのウインドウ切替え(alt + tab)って、1つしかウインドウの名前が 表示されないので、不便だなぁ。と以前から思っていました。マウスの中ボタンクリックで表示されるような、ウインドの 一覧だったらいいのに。。と思っていろいろ探していたら、 XFCE4のp…

スクリーンショットツールテスト結果

スクリーンショットツールに実際にscrotコマンド を実行させてみました。まずは、Select window or rectangleのチェックをOFFにした 状態ではこんな感じで保存されました。 (本来は、スクリーンショットツールは非表示になるべきですが、 その部分は調整中…

スクリーンショット用のツール

サーバ構築の調べ物を進めながら、気分転換に小さいツールを 作り始めました。先日、スクリーンショットを取るためのコマンド「scrot」についての 記事を描きましたが、GUIで操作できると便利かな。。と思って Python + PyGTKでUIを。やろうとしていることは…