Python3でsqlite3がつかえない問題

python3.4でsqlite3を使おうとしたら、標準で入っているはずなのにエラーが出た。

>>>import sqlite3
No module named '_sqlite3'

というかんじだった。

調べると、どうもインストール時に入っていなかった様子。
mac osを利用していて、brewでインストールしたのだけれど、それには入っていなかったようだった。
一度Python3をアンインストールして、公式ページから取得したインストーラで再度インストールしなおしたら、解決した。

Pyinstallerの使い方まとめ

Pythonでつくったプログラムを、Windows向けに配布しなければいけなくなったので、
PyInstallerを使ってexeファイルにした。
手順を忘れそうなので、ここにメモしておく。

環境:
Windows7 64bit(会社のなので)
Python2.7.3 32bit用


手順:
1,Pythonプログラムを用意する。(今回はspam.pyというファイルをつくったとする)

2,PyInstallerをダウンロード
http://www.pyinstaller.org/
より、
PyInstaller 2.0 (zip)
というリンクをクリックしてzipファイルをダウンロードする。

3,zipファイルを解凍し、フォルダをPCの好きなところに置く。
そして、そのフォルダパスを環境変数に追加する。
(ドキュメントを読んでいたら、setup.pyを実行するとかいろいろ書いてあったけど、別に必要なかった。というか、実行したらエラーになった)

4,コマンドプロンプトを起動し、exeファイルにしたいPythonプログラムのあるフォルダまで移動する。
移動したら、以下のコマンドを実行する。
pyinstaller.py spam.py

すると、いろいろメッセージが表示される。

ざらざら読んで、問題なさそうなら次のステップへいく。

5,もうひとつコマンドを実行する。
pyinstaller.py spam.spec

またたくさんメッセージが表示される。
実行すると前にあったファイルとか消すけどいい?(y/n)とかが出てくるので、yを押して少し待つ。
すると、プログラムファイルをおいていたフォルダの中にdistという名前のフォルダができ、
さらにその下層にプログラムファイル名(この場合はspam)のフォルダができる。
この中にexeファイルと、その他必要な.dllなどなどが入っている。


■ひとつのファイルにまとめたいとき
手順4で、オプションを使う。
pyinstaller.py --onefile spam.py
こうすると、.dllなどが同梱され、ひとつのexeファイルとしてまとめられる。

ほかにもいろいろオプションがある。ドキュメントにまとめられてるので、確認する。

スターマン動画まとめ1

今、スターマン(ベイスターズの新しいマスコット)がかわいい。

(画像は公式ホームページより)

前のマスコットのホッシーから代わって、今年度から新しく就いたマスコットなのだけど、
球界にはめずらしいゆるキャラ

まるっこいし、短い手足、ピンクのほっぺ、ちいさい帽子など全部がかわいい。
それで、このごろyoutubeでスターマンの動画を探しては観探しては観している。


オリックスとの交流戦のときの。
冒頭からかわいい。絵とならぶところがかわいい。


ロッテとの交流戦のとき。マーくんと卓球をしている。
なぜかスターマンはスリッパ。


同じくロッテとの交流戦のとき。
土下座をしたり縮んだりしていてとてもかわいい。
ロッテはこういうところに力が入っていてうらやましい。


B☆Bにころころされるスターマン。
ダンスも一所懸命踊っていてかわいい。


トラッキーにだっこされるスターマン。
餌付けもされている。
トラッキーはスターマンのことを「おいしそう」と言っていたので、
太らせて喰うつもりだと思う。

titaniumでアプリをつくったよ

プログラミングほんとに初心者なんだけど、iPhoneアプリをつくりました!
tekitotterで見られます。

ツイッターアプリなんだけど、やることはタイムラインを取得するのと、
事前に用意されているテキストの中からランダムに選んでそれをつぶやくという
生産性のないアプリです。

使ったのはTitaniumで、Objective-Cちんぷんかんぷんなわたしでも
一応appleの審査を通るものができました。
主に参考にさせていただいたのは
Titanium Mobileで作る! iPhone/Androidアプリ
こちらで、Titaniumのインストールからずっと首っ引きでした。
とりあえず公開までができて、とてもうれしいです。
次につくるものは、もうすこし生産性のよいものを作っていきたいと考えています。

web上でお絵かき+画像をサーバに保存するアプリをつくった

webブラウザ上でお絵かき+画像を保存+URLをはたくと他の人にも画像を見せられる
というアプリをつくった。
web-painter

HTML5/jQuery(お絵かき部分)+PHP(保存・表示部分)+MySQL(データためとく)です。

○お絵かき部分
DrawBoxを使わせていただきました。
ファイルを設置してcanvas要素を入れるだけでお絵かきできる。楽だー。

○保存・表示部分
canvasの中身をURLエンコードして(これはjavascript)それをPHPのほうに
POSTしてます。
↓渡してるjavascript

function submitImg(){
  var PNG = drawbox.toDataURL('image/png').replace(/^.*,/, '');
  var form = document.createElement('form');
  document.body.appendChild(form);
  var input = document.createElement( 'input');
  input.setAttribute('type','hidden');
  input.setAttribute('name','img');
  input.setAttribute('value', PNG);
  form.appendChild( input );
  form.setAttribute('action','saveImg.php');
  form.setAttribute('method','post');
  form.submit();
}

エンコードすると絵がすごい長い文字列になるので、それを受け取って
MySQLに保存。
(データ型はTEXTだと足りなかったっぽいのでMEDIUMTEXT型にした)

保存した文字列を

<img src="data:image/jpeg;base64,保存した文字列" alt="image" width="150" height="150">

みたいな感じで見せるとちゃんと画像が表示される。

あと、保存しとくときに一意の文字列を生成して、それを別のフィールドに同時に保存。
画像を表示するときはその一意の文字列からテーブル内を検索して、画像を表す文字列をひっぱってくるようにしてる。

公開したら、さっそく改善案をいただいたので
これからもっといい感じになるようにかえていきます。

○参考にさせていただいたページ
canvasに描いた絵(画像)をサーバに保存
Canvasによる画像ファイル(img要素)の読み書き
ありがとうございました!