Python
PycharmのPython Console使用時に発生したエラー。おそらくbackednをpyqt4からwxに変更したことも関係あると思われる。C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2017.1\helpers\pydev\pydev_ipython\inputhookwx.py def inputhook_wx3()…
Pycharmはずっと2016.3バージョンを使っていたが知らぬ間に2017.1という新バージョンに。機能もデバッグの高速化とPandasの可視化と魅力的だったため アップデートしたところ,前は普通に動いていたプログラムが立て続けに Pythonのcrashで動かず。。その時…
知らなかった。連続で処理したものをリストでもっておきたい時に便利。 たとえば グラフウィンドウ内にgridspecを使って大量にaxesを設定する場合 row = 4 line = 4 gs = gridspec.Gridspec(row, line) ax = [fig.addsubplot(gs[num]) for num in row * line…
wxFormBuilderで作ったGUIはwxPython2までしか対応していないせいか wxPython3だとエラーでうまく動かいない場合があり。変更(修正)が必要な項目のまとめ。【バージョン】 wxformbuilder:3.5.1-RC1(Unicode) wxPython-Phoenix: 3.0.3dev2749+f803d20 【要変…
・行数の表示 - ON ・メソッド間の区切り線 - ON ・スペースの可視化 - ON ・補完は大文字小文字を区別するか - None(しない) ・スペルチェック - OFF(しない) これがONだと適当な変数名にいちいちアラートが出る。 ・dict型を記述する際の配置 - Align on c…
Python2.7から3.5に移行して,py2exeが使えなくなってしまったので代わりにcx_Freezeを使った時のエラー エラー発生時のキーワードは KeyError: 'TCL_LIBRARY' (何故かエラー再現できなくなってしまった…。)解決方法はsetup.pyに下記を記載すること import …
Gohlkeさんのサイトからwhlファイルをダウンロードしてきて手動?でインストールしようとした際に発生したエラー。エラーメッセージは「***.whl is not a supported wheel on this platform.」最初はpythonのバージョンとライブラリのバージョンが違うために…
グラフの外にグラフ情報を表示したい場合,または対数グラフ上にテキストを表示したい場合の方法。対数グラフ内にテキストを表示する場合,axes.text()では位置合わせが難しい。そういう場合はfig内での座標でテキスト表示するのが有効。 テキストの位置はグ…
エクセルの並び替えの様に優先するキー(軸)を指定した並び替えが少しめんどくさい。 なぜそれ用の関数orオプションがないのだろうか…。方法としては キーにする軸のみargsortでソート後のインデックスを取り出す そのインデックスを使ってソートする前の配列…
GetWindowTextで文字列が取得できない場合(他プロセスのコントロール文字列は取得できないらしい、意味不明)は指定のハンドルにメッセージを投げて文字列を取得する。投げるメッセージの定数はwinuser32.h内に記載されている。ハンドルはspy++等で調べること…
win32apiのGetWindowTextを使ってウィンドウの文字列を取得する方法 1.EnumWindowsでトップレベル(アクティブという意味ではない)のウィンドウハンドルを取得 EnumWindowsは引数にコールバック関数が必要なのでコールバック関数を定義↓ 2.GetWindowTextLengt…
文字列が数値かどうか判定するstr.isdigits"."が含まれていると数値として判定してくれない。 str.isdigits("123") >> True str.isdigits("12.3") >> False 回避方法としては簡単なものはreplaceメソッドで"."を""に置換してしまうこと。 str.isdigits("12.3…
動画を読み込んで表示するプログラムでエラーが発生。 import cv2 src_m = cv2.VideoCapture("ファイル名") r, f = src_m.read() #←1フレーム読み込み cv2.imshow('title', f) #←フレーム表示 aviファイルはエラーが出ずに表示できるものとできない物があっ…
win32apiの user32.GetCursorPosとuser32.GetAsyncKeyStateを組み合わせて 左クリックした位置の座標を取得し,コンソールに出力するプログラム下記は2回クリックして1回目が左上,2回目を右下とする矩形の座標を呼び出し元に返すプログラム # -*- coding: ut…
関数名は user32.GetAsyncKeyState(vk_leftbutton) キーボードだけでなくマウスクリックも検知できる。戻り値が0x8000, 2進数だと16bitで 0b1000 0000 0000 0000 が返ってこれば押されてると判定。 押されていない時の戻り値は確か0だったはず。引数にはバ…
デスクトップ座標をwin32apiを使ってゲットするにはまずc言語での構造体をpython上で定義してあげる必要がある。今回は構造体用にクラスを作ってそのインスタンスを使う。 # 構造体を定義 class _pointer(ctypes.Structure): _fields_ = [ ('x', ctypes.c_lo…
ネットを探すとどうやらH.264でエンコードする際によく出るみたいだけど,自分のところではwmvでも発生した。原因はおそらくソースの動画サイズが 495x697で奇数だったこと。FFmpegのオプションで -s 494x696 を指定したら上手くいった。 H.264でのエラーは…
y2軸のグラフを書いてそれぞれの軸の凡例をまとめて表示しようとした際,普通にlengedを呼ぶだけだとうまくいかない。グラフのハンドルと表示名を引数に与えてあげる必要がある。それでもはまったのがグラフのハンドルは通常リストなのでlegendにそのまま与え…
OCRモジュールのpytesseractのPython版を使ってみた。最初はtesseractを使ってみたけど何故かPythonが動作停止に。その前にまずpythonのtesseractはC++のラッパーなのでtesseract-OCRのインストールが必要。 github.comその次にPythonで下記を実行 import te…
Numpyで動作は確認しているがlistで動作するかは未確認 -> 2019.5.13 listの場合を追加 これは覚えておくと便利 numpyの場合 listの場合 numpyの場合 条件に合うものを抽出 a = numpy.array([1,2,3,4,5,6]) a = a[a%2 ==0] >>array([2, 4, 6]) #←条件が合う…
MATLABと大きく違う点を今更ながら気づいた…。 なんかおかしいな、やりづらいなと思っていた点ですっきりしたのでメモ。 numpy.arange(0,10,1) >> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) # ←これはベクトル a = numpy.arange(0,10,1) a.reshape(1,10) >> ar…
沢山の方法があってどれを使うといいのか迷ってしまう。 いくつか試したのでその結果のメモ。1. win32clipboard(pywin32の一部と思う) # ストリームを開く win32clipboard.OpenClipboard() # データ取得 win32clipboard.GetClipboardData() # ストリームを閉…
matplotlibにはMATLABの様にグラフのハードコピー機能がないため, 自作するための下調べ。下記が参考になりそう。d.hatena.ne.jp pytan.hatenablog.com
良く忘れるのでメモ。こちらが大変わかりやすい!qiita.com
フォントのキャッシュを消去しないと新しいフォントが使えない。 キャッシュの場所は import matplotlib matplotlib.get_cachedir() でわかる。ここにある"fontList.cache"を消去すること。フォントの変え方はこちらを参考に。 qiita.com
threadのインスタンスを作成して別スレッドを作成する際の プチはまり # 関数hogeに引数numで与えて別スレッドで動かす例 self.th = threading.Thread(target = self.hoge, name="th", args=(num,)) self.th.start() 引数の"args=()"はタプルが必要なので 一…
ctypesが使える様になってAPIを調べる機会が増加。 よいサイトを見つけたのでメモ。https://msdn.microsoft.com/ja-jp/windows/hh240557#10使い方は # user32.dllの場合,keybd_eventの場合 ctypes.windll.user32.keybd_event(**,0,0,0) # kernel.dllの場合 c…
setup.pyで windows = [ {"script" : "***.py",} ],"windows ="とすればコンソールは表示されなくなった。 "console ="とすればコンソール表示に戻る。 (exe化するpyファイルの拡張子を.pywにしても同様の効果があると どこかに書いてあったけどダメだった)
py2exeを使ってexe化しようとしたときに出たエラー error: [Errno 2] No such file or directory: 'MSVCP90.dll'MSVCP90.dllをどこかのフォルダから探してきて python.exeがあるフォルダにコピーすれば動くようになった。 (たぶんPathが通っているフォルダ…
ndarrayだけじゃなくrangeでも使える方法。numpyの関数ならnumpy.fliplrを使えばいいんだけど 1次元の場合ちょっと工夫が必要で a = np.fliplr([ndarray])[0] てやらないとエラーがでる。なので逆スライスを使って a = ndarray[::-1] とした方がラク。ステッ…