タグ

ブックマーク / python.matrix.jp (35)

  • subprocessの互換性向上

    【1.1】   ユニコードで楽チンとはいかない 引数リストを渡す仕様ですが、 すべての要素がプラットフォーム依存のstr型に変更済みであることを期待しています。 unicodeインスタンスを含む場合、 あらかじめ「sys.getfilesystemencoding()」でエンコードしましょう。 【1.2】   自然終了しないプロセスをkillできない 扱う外部アプリケーションによっては強制的に終了させたい時があるのですが、 そのあたりのサポートがなく、プラットフォームごとに違う方法でkillしなければいけません。 当然タイムアウト処理なんかもサポートしていません。 【1.3】   パス名にダブルクオーテーションが含まれるとトラブる 基的にシェルベースでしかダブルクオーテーションは必要ないので、 引数リストという渡し方でダブルクオーテーションが無用なのは理解できます。

    Wacky
    Wacky 2009/08/21
    subprocessモジュールは既存のpopenシリーズよりもクロスプラットフォーム互換を狙ったものですが、まだ少し問題が残っています。
  • ブラウザで動くGUIアプリをつくろう

    【1.1】   ExtJSという選択 ExtJS はJavaScript製のGUIフレームワーク。 これを使うと一つのページ内にウインドウをいくつも開いたりといった ページをデスクトップの様に扱うことが出きるようになります。 【1.2】   py2jsをつかったJavaScriptフリーな開発 py2jsというモジュールを こちら の記事から知りました。 これを使うと、pythonコードをJavaScriptに変換できるようになります。 ExtJSの初期化やイベントハンドリングをPythonで記述し、変換したJavaScriptを利用します。 このpy2jsをうまく使うことでJavaScriptに触れずにExtJSを使えるようになります。 【1.3】   JSON-RPCを使ったクライアント-サーバ通信 JSON-RPCクライアントJavaScriptモジュール (jabs

    Wacky
    Wacky 2008/05/08
  • EasyInstallを使えるようにする

    △目次へ pythonでスタンダードになりつつある配布形態 egg このパッケージを利用するツール easy_install の使い方の基礎 目次 【1】   特長 最近 Pythonパッケージインデックス で「ナントカ.egg」という配布物をよく見かけますね? このeggパッケージは依存情報なんかも含んだ賢いパッケージで、 専用のインストーラを使ってあるパッケージをインストールする時、 不足しているパッケージを自動的に Pythonパッケージインデックス からダウンロード&インストールしてくれます。 つまり、Linuxのyumパッケージやdebパッケージの様な仕組みを提供しているのです。 この仕組みを利用するためのツールが setuptools モジュールに含まれる easy_install というツールです。 【2】   Windowsでのセットアップ まずPCのネ

    Wacky
    Wacky 2008/05/08
  • 日本語文字列コード問題まとめ

    【1】   文字列コード問題との戦い Pythonに限った話ではないのですが、 日語を取り扱うコードを書いていると やっかいなエンコーディングトラブルに遭う事は少なくないでしょう。 エンコーディングトラブルとは コンパイラ・インタプリタがソースコードを解釈できない。 画面表示が化ける。 意図した入力ができない。 エンコード・デコード時にエラーがでる。 正しいファイル名のつもりなのにファイルが見つからない。 出力させたファイルの中身が読めない。 などといった現象を基としていろんな問題を引き起こします。 問題のすべては「コード変換」に発生します。 実際の文字列が何のエンコーディングで、 渡す先が何のエンコーディングを期待しているか? それらを確認して合致させるように変換をするということが基です。 【2】   「Python語版が必要」というのは誤解 P

    Wacky
    Wacky 2007/04/21
  • Python開発統合環境の決定版!

    Python開発統合環境の決定版! PyScripter(for Windows)の紹介 tags:

    Wacky
    Wacky 2007/03/31
    Python言語をメインサポートする統合開発環境(IDE)です
  • ちょろわざ集

    >>> int('01010001', 2) # 2進数文字列を整数に 81 >>> int('77feff', 16) # 16進数文字列を整数に 7864063 >>> int('77feFF', 16) # 大文字小文字混在OK 7864063 >>> int('32467102', 8) # 8進数文字列を整数に 6975042 >>> int('XYZ', 36) # 36進数までOK 44027

    Wacky
    Wacky 2007/02/09
  • Pythonで分散バージョン管理

    【1】   SCMとは? 「Software Configuration Management System」の略で、 邦訳は「ソフトウェア構成管理システム」がふつーなんですが、 一般には「バージョン管理ツール」とかの方が通りが良いでしょう。 主な機能として、 管理対象ソフトウェアのソースコード一群の変更を記録しておき、 時系列順に変更履歴をたどれるようにしたシステムなんです。 具体的な対象はソースコードファイルが基です。 ソースコードの変更のあった行を抽出したり出来ます。 最近のバージョン管理ツールは あらゆるファイルの履歴を追えるようになっています。 ワードやエクセル、バイナリファイルなどもとりあえず バージョン別に記録されたものを取り出せます。 (部分的な変更を抽出まではできないことが多いです。) 仕組みとしては 「管理対象ファイル群」とは別に 「リポ

    Wacky
    Wacky 2007/02/03
  • 「 Python 」でナノ秒の世界へ!

    【1】   概要 「 MyHDL 」は「 python 」によるハードウェアロジック記述に特化した 「 DSL 」の一種です。 MyHDLはPythonにいくつかの制約と拡張を行った記述になっています。 ほとんどの基的なPythonの記述方法が使えます。 Verilogへのトランスレート Pythonレベルのシミュレーションテスト という2つの主要機能によって 「ハードウェアロジックの開発」を「Pythonベース」で行うことができます。

    Wacky
    Wacky 2006/10/30
    「 MyHDL 」は「 Python 」によるハードウェアロジック記述に特化した「 DSL 」の一種です。
  • IPythonって最高!

    【3.2】   TABキーで補完してくれる! In [12] sys. <-ここでTABキーを押すと下記のような一覧がでます。 In [12] sys.arg <-ここでTABキーを押すと「sys.argv」に変化します。 (つまり候補がユニークであれば補完が完了します。) 【3.3】   通常のシェルコマンドも使える! このように、「!」マークのあとにコマンドプロンプトで 使っているコマンドがそのまま使えます。 もちろん、フォルダ名やファイル名に対してもTAB補完が効きます! このおかげで、コマンドプロンプトと pythonのインタラクティブモードとの行き来が不要になります。 【3.5】   デバッグが簡単! In [19]: %pdb on Automatic pdb calling has been turned ON としておくと、コード実行中に補足されない

    Wacky
    Wacky 2006/06/10
    pyreadlineがバージョンアップして、日本語の利用もOKになったのです!
  • 関数引数と辞書

    >>> def hoge(**keys): ... print keys ... >>> hoge(i=1, j=2) {'i': 1, 'j': 2}

    Wacky
    Wacky 2006/04/15
    Pythonでは関数引数にも辞書(dictオブジェクト)が活躍しています。
  • PythonのIDEを発掘!

    【1】   こんなところに! wxPythonの デモ&ツール をインストールしましたが、 (wxPython2.6 Docs and Demosインストールフォルダ)\samples\ide\ActiveGridIDE.py を起動すると・・・。 【1.1】   スクリーンショット 起動時のスプラッシュ: 起動直後: ホームサイト: http://www.activegrid.com/ こちらのホームサイトでは、apacheとの連携を想定した Webアプリケーションの構築環境が提供されています。 wxPythonのデモサンプルにあるものは、この環境のコードエディタとデバッガ部分です。

    Wacky
    Wacky 2006/04/15
    Ctrl+Spaceでコード補完の選択リストがポップアップします。デバッガつき実行をするとデバッグできます。VisualStudioのようにソースファイル群のプロジェクト単位での管理ができます。
  • PythonMatrix:C++とPythonのコラボレーション

    【1】   概要 「SWIG」というC/C++コードを各種言語から 利用できるようにするラッパージェネレータがあるのをご存知でしょうか? ホームサイト: http://www.swig.org/ Allegro CL C# Chicken Guile Java Modula-3 Mzscheme OCAML Perl PHP python Ruby Tcl といった多彩なジェネレート出力が得られます。 このページでは当然Pythonからの利用を解説しますが、 実はPython標準ディストリビューションには SWIGとの連携をサポートする機能が最初から組み込み済みです。 つまり、他の言語利用よりもPythonとSWIGの組み合わせが最も親和性が高いといえます。 PythonとSWIGの連携実績は以下のように非常に有名なプロジェクトがあることもポイン

  • Pythonのモジュールインポートのしくみ

    【1】   インポートする時 hoge.pyというモジュールをインポートする時、 hoge.pycファイルがなければコンパイル後のキャッシュをhoge.pycとして保存するようです。 【2】   パッケージってなんなの? Pythonではフォルダに「__init__.py」があれば、そのフォルダを「パッケージ」として扱えるようになっています。 論理的なツリーを構築するためにもつかえますし、このフォルダ内に複数のモジュールを入れておき、あたかも巨大なひとつのモジュールのように振舞わせることが出来ます。

    Wacky
    Wacky 2006/04/01
  • http://python.matrix.jp/projects/mail_forward.html

    Wacky
    Wacky 2006/03/12
    いくつも名前を変えてPythonCGIが使えるサーバーにおいておけば、複数のPOPアカウントのメールを転送できます。
  • PyFileServerについて

    【1.3】   コンフファイルの作成 PyFileServer-example.confを「PyFileServer.conf」という名前で複製。 以下の記述を必要に応じて書き加えてください。 以下のように、リソース名(任意の名前をつけてください)とローカルパス名を記述すると関連付けを定義できます。 addrealm('docs', 'C:\PyFileServer') また、ユーザー認証をつけるには(リソース名,ユーザーID,パスワード,説明)というパラメータで「adduser」メソッドを記述します。 adduser('docs', 'localhost\\user_id', 'user_password', 'user_description')

    Wacky
    Wacky 2006/03/12
    実行形式ファイルの作成をしてしまえば、USBメモリからWebDAVサーバを立ち上げる事もできるでしょう。
  • VPythonモジュールについて

    【1】   VPythonの概要 2Dおよび3Dのモデルを視覚化する支援ライブラリモジュールです。 OpenGLを利用しています。 モデルの表示だけでなく、力学シミュレーションも可能です。 主に利用目的としては2通りあるでしょう。 モデルの力学的動作のシミュレーション データのグラフプロッティング 前者も凝れば楽しいことがいろいろできそうですが、 私の需要は後者にあります。 VPythonを使うと簡単にグラフの作図ができます。

    Wacky
    Wacky 2006/03/12
    VPythonを使うと簡単にグラフの作図ができます。2Dおよび3Dのモデルを視覚化する支援ライブラリモジュールです。OpenGLを利用しています。
  • facesについて

    【1】   特徴 facesでは、PythonをDSLのように扱って、プロジェクトマネジメントを支援します。 リソースの宣言や、プロジェクトの立ち上げすべてクラス宣言として記述します。 それらを用いてレポートやWBSの作図、ガントチャートの作図、HTMLのエクスポートなどができます。 詳細はすべてクラス内の記述で表すみたい。 エディタも内臓しているので、これ単体で動作OKです。

    Wacky
    Wacky 2006/03/12
    Python記述を用いたプロジェクトマネジメントを行う「faces」の紹介。(モジュール形態なんだけどこれはアプリケーションです。)
  • 分割ウインドウな例

    Wacky
    Wacky 2006/03/12
    wxSplitterWindowを使ってみました。子コントロールを2つ持つことができる特殊コントロールです。
  • はねまわるウインドウな例

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 #!/usr/bin/local/python # -*- coding: utf-8 -*- import sys

    Wacky
    Wacky 2006/03/12
    シェイプドウインドウやタイマーイベント、マウスモーション検知イベント利用のサンプルになっています。
  • マルチタブテキストエディタな例

    【2】   ファイルリスト resource.xrc wx_editor.py wx_utils.py setup.py main_icon.ico main_icon.py custom/ - __init__.py - default.py - python.py - others.py 例によっておなじ構成に加えて、 カスタマイズ用フォルダといくつかのサンプルを置いています。 【4.1】   概要 ノートブックの使い方、stc(ScintillaTextCtrl)の使い方の一例です。 pickleを使った、ウィンドウジオメトリの保存と復旧を行っていますので、 ウインドウの位置と大きさを記憶してくれます。 タブでミドルクリックするとクローズします(Firefox風) セットアップスクリプトでは、カスタマイズ用フォルダのスクリプトをバンドルしないように

    Wacky
    Wacky 2006/03/04
    ノートブックの使い方、stc(ScintillaTextCtrl)の使い方の一例です。