Python

VimをアップデートしたらVimからPythonのlxmlが使えなくなったのでVimを過去版に戻した

ちゃんと調べきれていないので断片的な情報になるけどメモたぶんコンパイラがVC9からVC10に変わったことでPythonとコンパイラが合わずDLLの読み込みでエラー VimのコンパイラがVC9時代のkaoriyaさんのところの旧バージョン7.2に戻したところ読み込めるように…

Windows 7でIPythonを使う場合の補完

IPythonで補完を使用する場合に、Windows XPではTABで補完時にユニークでなかった 場合は候補が表示されるが、Windows 7になってからはリストが出なくて使いにくかっ たのが解決した。http://stackoverflow.com/questions/3771837/ambiguous-tab-completion-…

vimでPythonを使うときにインポートエラー

vimスクリプトを作ろうとしたらエラー :py import lxml.html Traceback (most recent call last): File "", line 1, in File "C:\Python26\lib\site-packages\lxml-2.3beta1-py2.6-win32.egg\lxml\html\__init__.py", line 12, in from lxml import etree Im…

円記号の扱い

円記号(0xA5)がsjisでは解釈できるけど、cp932では解釈できない。 sjisでは逆に株とかが解釈できないので困る。とりあえずはmbcsでエンコードすることで回避した。 >>> print u'\xa5'.encode('sjis') > print(u'\xa5'.encode('sjis')) \ >>> print u'\xa5'.e…

IronPython2.0で日本語を使う場合に気をつけること

ファイルエンコードをutf-8でBOMを付けた状態にしないと >>> print 'こんにちは。' a??a??a?≪a?!a? ̄a・? となる。

SnopticをApacheで動かしてみた。

気になってはいたが動かし方が分からず、しばらく忘れてたソフトを動かしてみた。Gmailをノート風に、がコンセプトの「Synoptic」 前準備 いろいろと周辺ライブラリが必要なのでeasy_installでいっぺんにインストールする。 easy_install synoptic easy_inst…

maxの使い方

組み込み関数maxの使い方で意外な方法があったのに気がついた。maxはNoneと非Noneを比較し非Noneを取得できる。 num_max = int(max(0,func())) funcがNoneだった場合は0を返す。同様にNoneとリストでも使える num_lust = map(int,max([],func())) funcがNone…

機能拡張に伴いmodels.pyをcgi経由で変更・反映

out.jsonに出力しておいたデータを最投入する。 manage.py dumpdataで出力したデータは投入順序を考慮していないので適せん修正する。cgiに以下の記載。 #!/usr/local/bin/python import cgi import cgitb; cgitb.enable() import os os.environ['DJANGO_SET…

機能拡張の準備

land.toのmysqlのdjangoのデータをエクスポートする。インタフェース #!/usr/local/bin/python import cgi import cgitb; cgitb.enable() import os os.environ['DJANGO_SETTINGS_MODULE'] = 'mydiary.settings' os.system('python mydiary/manage.py dumpda…

テンプレートタグの追加

カレンダーを表示したいと思ってたらdjango snippetsにCalendar template-tagと言うものがあった。 こいつを使えば{% month_cal 2008 7 %}と記述するとカレンダーが表示されるらしい。 ということでやってみた。 $ cd diary/ $ ls __init__.py __init__.pyo …

land.toでdocutilsを使えるようにした

Djangoの管理サイトでDocumentationをクリックするとdocutilsが必要とか出てくるので使えるようにした。 ローカルにインストールしてあるdocutilsをサーバにコピーしてdjango.cgiにsys.path.appendすればOK。 うちの場合は~/lib/python2.5/site-packages/doc…

pyodbcを最新にした

pyodbcの履歴を見るとx64対応されているらしい。 でもbuild物は公開されていないのでコンパイルする。 cl *.cpp -c -I pyinclude link /DLL /OUT:pyodbc.pyd *.obj /LIBPATH:pylib odbc32.lib bufferoverflowu.lib コンパイルするとエラーが出る。 PYODBC_RE…

Formを使ってみた

form_for_modelを使うと便利だなぁ。 自分でformのクラスを書かなくていい上、saveメソッドが付くから手間が少ない。 なんて考えていたのですが、リレーションがある場合にどうしていいのか。 ためしにPollアプリケーションにPoll追加ビューを作ってみたがう…

land.toでDjangoすると文字化け

エントリ名が一緒でわかりにくいが。 ■[Python][Django]land.toサーバでdjango.cgi ■[Python][Django]land.toサーバでdjango.cgi 文字化けして困るのでちょっと調べてみた。 mysqlにutf-8でデータが格納されていない気がする。 charsetの指定はmysql…

land.toサーバでdjango.cgi

http://d.hatena.ne.jp/tino_9000/20071103/1194071801 たくさんテーブルとデータを作成するのはとても面倒なので、ちょっとだけ楽な方法を考えてみた。 os.system('python manage.py syncdb --noinput') django.contrib.auth.create_superuser.createsuperu…

wxPythonとXRCedでGUIプログラム(簡易ブラウザ)

wxPythonを使うとGUIがそれなりに簡単に使えて、付属しているXRCedを利用するとGUIを使って画面設計ができる。 ただし、XRCedで作成したxrcというXMLを使用するにはそれを使用するためのスクリプトを作らなければいけず、覚えるのめんどいとか思ってしばらく…

land.toサーバでdjango.cgi

無料のサーバでdjangoしたい欲求に駆られたのでland.toでやってみることにした。 SSHログインはできないし、やっぱりCGIでしか動かせないのでものすごく困った。 適当に操作しすぎてよく覚えていないのでポイントだけメモする。 強引にやってみた。 djangoイ…

さくらサーバでdjango.cgi

さくらサーバでdjangoを動かすことになった。 sshでログインすればインストールまではできたが、その後が大変。 とりあえずメモすることにする。 MySQLdbを/home/xxx/lib/pythonにインストールしたらcgiでインポートできない site.addsitedirして解決 site-p…

ループの中で関数を作成しループ内変数の値を使用する

ループ内で関数を作成した場合に引数を通さずに変数を関数内で使用すると、ループ中で最後に格納された値になる。 関数を大量に生成する場合なんかに全部最後の値になって困る。 その場合はdefaultを指定した引数として渡せばループ中で作成した時点の変数の…

アプリケーションを作ってみたい

日報入力プログラムがほしいなぁとか呟かれてしまったのでDjangoで試してみようかなー。 なんて考えてみたもののなんだかなかなかうまくいかない。 やりたいことは以下 データ入力画面にはログインが必要 追加、更新、削除ができる 参照画面は入力したユーザ…

やっぱりエンコードはよくわからない

#!/usr/bin/env python # -*- coding: UTF-8 -*- def test(): """ >>> test() あいうえお """ a = 'あいうえお' print a a = 'あいうえお' print a.decode('utf-8') >実行結果 縺ゅ>縺・∴縺 あいうえお #!/usr/bin/env python # -*- coding: UTF-8 -*- def …

doctestで悩んだ

失敗例 ''' >>> print 'hello\n' hello ''' 成功例 r''' >>> print 'hello\n' hello ''' 改行だとエラーになるのでわかるが、タブの場合はテスト失敗になって原因がよくわからなくなる。注意。 出力以外ではr''を使うようにしたほうがいいのかな。

pipes困った

prependに存在しないファイル名を渡しても空出力で帰ってくる。 せめてエラーメッセージが欲しい。 何とかならないものか。

pipesの使い方

何かのコマンドを実行してその結果がほしい場合はpipesを使用する。 入力が必要な場合はappendで不要な場合はprependを使う。 import pipes import tempfile def auto(): t=pipes.Template() t.prepend('python -c "import time;time.sleep(10);print \'hell…

threadingの使い方

threadモジュールより高級と書かれている。 Threadクラスがあるため実行中のスレッドを操作しやすい。 ※止め方がまだ分からないので↓のソースは危険 import threading class dummy: a=0 def run(self): while True: self.a=self.a+1 d = dummy() #threading…

よく忘れるmap

a = [1,2,3,4,5] "".join(a) をやろうとして文字列ではないとエラーになる。 "".join([str(item) for item in a]) とよくやっていたが "".join(map(str,a)) こっちの方が良い。 たまに忘れて↑↑になる。

Tutorialでお勉強3

4章の途中 urls.pyの設定を間違える (r'^polls/$',include('mysite.polls.urls')), $が付いてた。うん、末尾じゃないよね。 (r'^polls/',include('mysite.polls.urls')), views.pyとか python manage.py runserverした状態で 編集するとpythonがエラーで落ち…

Tutorialでお勉強2

3章の半ばまで終了 Memo models.py DBを書く views.py DBを使う Templates どのように表示するかを書く(HTMLなど) urls.py URLをviews.pyのどの関数に割り当てるかを書く 流れ リクエスト ↓ urls.py → views.py → Templates ↑ ↓ models.py レスポンス ↑ Data…

Tutorialでお勉強

インストールしてみたが何ができるのか良くわかっていない。 とりあえずTutorialをやってみることにした。 データベースをModelという概念で扱うらしい。O/R Mapping? とりあえず1章終了 Memo __unicode__()が__str__()として呼ばれない modelsのbase.pyを…

djangoをinstallしてみた

家のマシンでやったらうまくいった。 Windows98がいいのか。会社のマシンの環境が悪いのか。 追記: 家のマシンでは'setup.py install'とやっても 「コマンドまたはファイル名が〜」エラーになっていて 'python setup.py install'とやっていたのでうまくいっ…