Python

メモ(pycを作成させない方法)

Python3.2から__pycache__というディレクトリにバージョン付きで作成されるらしい。 色々と勉強不足になってきた。 http://d.hatena.ne.jp/itasuke/20111215/pyc_file

ctypesでC言語側の配列データを取得する方法

参考 http://stackoverflow.com/questions/4213095/python-and-ctypes-how-to-correctly-pass-pointer-to-pointer-into-dll // c_hoge.cpp #include "c_hoge.h" #include <stdlib.h> static int numData = 0; static float* arData = NULL; void getArrayData(float** </stdlib.h>…

mini-Python

mini-Python http://www.logos.ic.i.u-tokyo.ac.jp/lectures/enshu2007/index.php?%B9%D6%B5%C1%BB%F1%CE%C1 Pythonの簡易版を作る資料らしい。 あとで勉強する予定。

ExcelのPythonプラグイン

ExcelでVBAの代わりにPythonで操作出来るらしい。 とりあえず、DataNitroを試すつもり。 DataNitro https://datanitro.com/index.html Pyvot http://pytools.codeplex.com/ Pyxll http://pyxll.com/#

拡張モジュール作成 (1)

http://owa.as.wakwak.ne.jp/zope/docs/Python/BindingC/ を参考にWindows版のビルドを試した。 // hello.cpp int add(int x, int y) { return x + y; } void out(const char* adrs, const char* name) { printf("こんにちは、私は %s の %s です。\n", adrs…

Pythonの組み込み

今さらながら、C++にPythonを簡単に組み込めることに気がついた。 Pythonでexecfile('hoge.py')を呼び出すだけのexeを作成し、C++側では、exeを実行するだけで良い。 もちろん、もっと汎用化したければ、hoge.pyを引数のパラメータで、変更出来るようにした…

PythonのReportLabのソースをpy2exeでexe化する際のメモ

setup.pyのsetup()のoptionsでpackagesを指定する必要がある。 # coding: cp932 # setup.py from distutils.core import setup import py2exe packages=[ 'reportlab', 'reportlab.graphics.charts', 'reportlab.graphics.samples', 'reportlab.graphics.wid…

PySideの記事

PySideによるQtプログラミング入門 (http://morchin.sakura.ne.jp/pyside_qt/index.html) 公開した。

リスト

QListView、QStandardItemModelを使用する。QAbstractListModelを使用するのは面倒なので利用しない。 QAbstractListModelの例は以下を参考に。 三次元日誌: PyQt練習 (http://d.hatena.ne.jp/ousttrue/20071123/1195837279) import sys from PySide import …

32bitのビルド

64bitマシンで、32bitのPythonと64bitのPython両方をインストールして、両者をビルドしたら、32bitで動くexeと64bitで動くexeを作成できた。結局、64bitマシンだから64bitのexeしか作れないということではなかった。逆に、32bitマシンだと64bitのexeは作れな…

ライセンスに関して

PyQtとPySideのライセンスに関して少し調べた。PyQtはGPLで、PySideはLGPLらしい。ライセンスの概要は以下が参考になる。 GPLやMITやCCなど主要ライセンスの内容と意味のまとめ (http://smkn.xsrv.jp/blog/2009/03/summary_for_gpl_mit_cc_etc/) 以下のサイ…

3Dを扱うGUI

3Dを扱うGUIアプリを作る場合、以下の4通りの組合せが考えられる。 Python2.x, 32bit Python2.x, 64bit Python3.x, 32bit Python3.x, 64bit 以下のライブラリを使用するものとする。 PyQt PyOpenGL PyOpenGLは、Python3.xに対応していないので、Python2.xで…

ツリー

ツリーには、QTreeViewを使う。モデルは、QStandardItemModelとQAbstractItemModelの2つがある。とりあえず、簡単な前者の方を使用する。 import sys from PyQt4 import QtCore, QtGui class TreeView(QtGui.QTreeView): def __init__(self, parent=None): s…

タブ

import sys from PyQt4 import QtGui class TabWidget(QtGui.QTabWidget): def __init__(self, parent=None): super (TabWidget, self).__init__(parent) self.setTabsClosable(True) self.tabCloseRequested.connect(self.removeTab) self.addTab(QtGui.QLa…

ファイルのドラッグ&ドロップ

None is None is None: PyQtでファイルのドラッグ&ドロップ (http://d.hatena.ne.jp/doloopwhile/20100108/1275174371) を参考に。 import sys from PyQt4.QtGui import * class MainWidget(QWidget): def __init__(self, parent=None): super(MainWidget, …

PyQt4でOpenGL

とりあえず、簡単なサンプルを作成した。 # coding: cp932 import sys from PyQt4 import QtCore, QtGui, QtOpenGL from OpenGL import GL, GLU, GLUT r = 0.0 light_ambient = [1.0, 1.0, 1.0, 1.0] # 環境光(白色) light_diffuse = [1.0, 1.0, 1.0, 1.0]…

PyQt4メモ

The PyQt4 tutorial (http://zetcode.com/tutorials/pyqt4/) saito's memo (http://memo.saitodev.com/home/python_pyqt4) Pythonのスクリプティング (http://www.cuc.ac.jp/~minohara/lecture/iseminar/python/index.html)

デフォルト引数の奇妙な挙動

http://webtech-walker.com/archive/2010/10/13191417.html を見ていて、ふと疑問に思った。 def foo(x=[]): print '--1', x if x: print '--2', x x = [] x.append(1) print x foo() foo() foo() 出力: --1 [] [1] --1 [1] --2 [1] [1] --1 [1] --2 [1] [1]…

メモ

インストールされているモジュール一覧を表示。 >>> help('modules')

メモ

Python Scientific Lecture Notes (http://www.ike-dyn.ritsumei.ac.jp/~uchida/scipy-lecture-notes/)

メモ

コマンドプロンプトでのPythonの文字コードについて (http://d.hatena.ne.jp/nullpobug/20110706/1309934555)

メモ

Python2のstrは死んだ (http://d.hatena.ne.jp/atsuoishimoto/20110425/1303696948)

メモ

UnicodeDecodeError/UnicodeEncodeErrorに悩まないPython 2.x プログラミング (http://d.hatena.ne.jp/atsuoishimoto/20110311/1299805971) 後で読む。

用語

Pythonはクロージャ内の変数に一般的な名前が付いていないので、以下の挙動を説明する時に困る。 >>> L = [lambda: x for x in range(3)] >>> L[0](), L[1](), L[2]() (2, 2, 2) >>> L = [lambda x=x: x for x in range(3)] >>> L[0](), L[1](), L[2]() (0, …

メモ

Dive Into Python 3 日本語版 (http://diveintopython3-ja.rdy.jp/index.html)

Qtの記事

Qt をはじめよう! http://qt-labs.jp/category/getting-started-with-qt/page/2 http://qt-labs.jp/category/getting-started-with-qt

GUIとOpenGLの組合せ

Using OpenGL with wxPython (http://www.siafoo.net/snippet/97) Using OpenGL with PyQt (http://www.siafoo.net/snippet/316) PyQtサンプル (http://d.hatena.ne.jp/ousttrue/20071119/1195507655) #Uncomment if you have multiple wxWidgets versions #…

wxPython本

洋書だけどwxPython本が出ていた。買わないけど。 wxPython 2.8 Application Development Cookbook

SwigによるPython拡張モジュール

配列処理の例。 // hoge.h class MyError {}; class MyArray { int num; int* vals; public: MyArray(int num); int __getitem__(int idx) throw(MyError); }; // hoge.cpp #include "hoge.h" MyArray::MyArray(int num) { this->vals = new int[num]; this-…

メモ

Swigの使い方用のメモ。 PythonのC言語拡張モジュール作成ガイド (http://www.hexacosa.net/documents/python-extending/#swig) SWIGでPythonラッパを書いてみる (http://d.hatena.ne.jp/sleepy_yoshi/20091123/p1)