雲雀は高く空を舞い このページをアンテナに追加 RSSフィード

「ひよこは高く空を舞い」について

2009-10-28

[]keynote 09にて数式の入力 - LaTeXiT keynote 09にて数式の入力 - LaTeXiT - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - keynote 09にて数式の入力 - LaTeXiT - 雲雀は高く空を舞い keynote 09にて数式の入力 - LaTeXiT - 雲雀は高く空を舞い のブックマークコメント

挿入>関数>数式エディタ (grayout)

なんで選択できないのかなー。Snow Leopardになって64bitに対応してないとかそういう理由なのかなーと思ったら違った。

これは、MathTypeをインストールしてると連携できますよ、というメニューみたい。MathTypeをインストールしないと使えない。あちゃー。


なんとかかんとか、というわけでLaTeXiTという便利なアプリを発見。

TeX環境をインストールしてあればTeX記法で数式を入力して、数式イメージを生成できるというもの。

日本語、使えた方が便利なのかな?ということでまずはpTeXのインストール

sudo port install ptex

設定>CompositionからLaTeX/opt/local/bin/platexに変更。

後は適当に生成して、コピペでおっけ。


このソフトの便利なところは、Keynoteに貼り付けた数式イメージをコピーして、LaTeXitにペーストできること。TeX数式としてペーストされるので再編集が容易。

生成したヒストリなんてのも充実してるのでそこから編集してもよいし、かゆいところに手の届く便利アプリでした。

xxhxovupwpxxhxovupwp2013/08/28 04:18yikqwdijdl, <a href="http://www.ydnxnrukjn.com/">dzguyhqeey</a> , [url=http://www.hgrhqxbqca.com/]aakkgmmfux[/url], http://www.acahfqhnmy.com/ dzguyhqeey

zftcowwchzzftcowwchz2014/12/04 05:34nfjjudijdl, <a href="http://www.memxfdsbmt.com/">qgvsvkxvbw</a> , [url=http://www.htrvlyycmb.com/]mcfegjdekk[/url], http://www.xrbhaoxguc.com/ qgvsvkxvbw

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091028

2009-10-27

[]pukiwiki upload limit pukiwiki upload limit - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - pukiwiki upload limit - 雲雀は高く空を舞い pukiwiki upload limit - 雲雀は高く空を舞い のブックマークコメント

change these files.@Ubuntu 8.10, apache2, PHP5.2.4

/etc/php5/apache2/php.ini

270) memory_limit = 64M
451) post_max_size = 64M
565) upload_max_filesize = 32M

<wikidir>/plugin/attach.inc.php

ini_set('upload_max_filesize', '32M')
define('PLUGIN_ATTACH_MAX_FILESIZE', (16 * 1024*1024))
sudo apache2ctl restart

see>FAQ/31 - PukiWiki-official

i forgot to memo default value.

[]print文で改行を出力させたくない print文で改行を出力させたくない - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - print文で改行を出力させたくない - 雲雀は高く空を舞い print文で改行を出力させたくない - 雲雀は高く空を舞い のブックマークコメント

print文の出力後に、改行させたくないんだよなーという事でメモ.

1) 出力系の現在の書き出し位置が行頭にある と考えられる場合を除き、各オブジェクトの出力前にスペースが一つ出力 されます。行頭にある場合とは、(1) 標準出力にまだ何も書き出されて いない場合、(2) 標準出力に最後に書き出された文字が "¥n" である、または (3) 標準出力に対する最後の書き出し操作が print 文によるものではない場合、です。

2) print 文がカンマで終了していない限り、末尾には文字 "¥n" が書き出されます。

404 Not Found

リファレンスによると2)print文が,で終わっていれば\nは出力されない.

そして、1) 行頭でないぽい場合は、出力前にスペースは出力されない、との事なんだけど。。。

def printtest():
  print "hogehoge",
  print "fugafuga"
printtest()
hogehoge fugafuga

。。。。あれ?

ということで、余計な事をしないようにsys.stdout.writeを使う.

import sys

def printtest():
 sys.stdout.write("hogehoge")
 sys.stdout.write("fugafuga\n")
printtest()
hogehogefugafuga

おっけー。

NonaNona2011/10/05 11:55I cnanot tell a lie, that really helped.

edlnpixtvedlnpixtv2011/10/06 22:232dA46i , [url=http://bitspxhpyveq.com/]bitspxhpyveq[/url], [link=http://gmkfvizxrggg.com/]gmkfvizxrggg[/link], http://hbrguvpcyjmd.com/

nksriuznksriuz2011/10/07 23:54157tSM <a href="http://vzzgovlxinxc.com/">vzzgovlxinxc</a>

qyzrdvqyzrdv2011/10/09 00:55T9HKFR , [url=http://ugzxcjazovui.com/]ugzxcjazovui[/url], [link=http://uqcpiutudzim.com/]uqcpiutudzim[/link], http://nleuatvjetix.com/

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091027

2009-10-26

[][] Ubuntu 9.04でリモートデスクトップ (2) vncserver  Ubuntu 9.04でリモートデスクトップ (2) vncserver - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク -  Ubuntu 9.04でリモートデスクトップ (2) vncserver - 雲雀は高く空を舞い  Ubuntu 9.04でリモートデスクトップ (2) vncserver - 雲雀は高く空を舞い のブックマークコメント

UbuntuにリモートGUIログインをするにあたって、Ubuntuにはじめから入ってるVNC server (Vino)はローカルでGUIログインしているユーザしかログインできない (=同時に複数でログインできない)というのが前回の話.

ということで、他のVNC serverをあたってみました.

今回使用したのはvncserver (vnc4server).ほんとはdaemon化すると良いんだけど、とりあえず出来れば良いという事でdaemon化しないでユーザープロセスとして動かしてます.

インストール

インストールはGUI/CUIどちらでも可.GUIの場合はシステム管理>Synapticパッケージマネージャから.CUIはaptを使ってapt-get install vnc4serverでおっけー。

設定

設定はこちらのサイトによった.

インストール後、まずターミナルから#vncserver :1 -geometry 1024x768 -depth 16(パラメータは適宜.)として実行する.ここで:1が画面1にて描画するの意味で、クライアントから接続する場合ポート番号5901(標準の5900+1)でアクセスできる様になる.vnc用パスワードを設定し起動する事でホームディレクトリに.vncディレクトリと設定ファイルなどが作成される.起動したらvncserver -kill :1でそのプロセスの終了.

作成された設定ファイル~/.vnc/xstartupをいじる.

#!/bin/sh

# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

gnome-session &


[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
# xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

赤字部分が設定した部分.これだけ.あとは、ログインしたいユーザにてvncserverを起動すれば複数人からのアクセスが実現できる.

ただ、実際に複数人からのアクセスを実現するためには、ログインしたいユーザごとにvncを起動するのではなくxinetdを用いてdaemon化して運用するのが本筋.

[][]Ubuntu 9.04でリモートデスクトップ (1) Vino Ubuntu 9.04でリモートデスクトップ (1) Vino - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - Ubuntu 9.04でリモートデスクトップ (1) Vino - 雲雀は高く空を舞い Ubuntu 9.04でリモートデスクトップ (1) Vino - 雲雀は高く空を舞い のブックマークコメント

複数ユーザで同時にリモートからGUIUbuntuにアクセスする事は出来ますか、との問い合わせを受けたのでチャレンジ。

CUI/SSHでアクセスするにはこちらの通りsshdを入れておけばOK。

Ubuntu with VMware on Windows - 雲雀は高く空を舞い - ひよこの会

GUIでアクセスするにはもとからインストールされてるVNCを使えばOK。

サーバの設定

vinoというVNCが統合されているので、「設定>リモートデスクトップの設定」から以下のような設定をすればOK.

f:id:allegro:20091026112637j:image

  • 「他のユーザが自分のデスクトップを表示できる」「他のユーザがデスクトップを操作できる」にチェック.(VNCサーバ起動の設定)
  • セキュリティの「このマシンへの接続を毎回確認する」のチェックを外す.(クライアントから接続した際にホストPCで毎回それを許可するかどうするかの設定。これにチェックが入っていると、クライアントから接続した際にホストで毎回操作が必要なのでホストをいじれる環境でないと接続できなくなってしまう)
  • パスワードの入力を要求する

とすればOK.設定すると、アクセスするのに必要なアドレスなども表示される.

これだけ。簡単。

クライアントの設定

VNCクライアントを使えば適当に繋がる.


Windowsの場合はReal VNCとかUltraVNCとか使えばOK。


Linuxの場合は…何を使うのか分かりませんが適当にVNCクライアントがある、はず。


MacOSXの場合はTigerLeopardのころからVNCサーバ/クライアントが統合されてるのでそれを使える.Finderの移動>サーバに接続...に「vnc://アカウント名@サーバ名」と入力.

Finder上にUbuntuPCが表示されるので、「画面の共有」をクリックすればOK.


と思ったら。。。Ubuntuに統合されているVNC server (Vino)は、ユーザがGUIログイン状態でないと使えない=複数ユーザが同時にアクセスすることができない!とか…。ということで、他の方法を探します.あうえう.

NehaNeha2015/08/11 09:29Wham bam thank you, ma'am, my qusiteons are answered!

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091026

2009-10-23

[]はてなグループにGoogle Analyticsをはる はてなグループにGoogle Analyticsをはる - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - はてなグループにGoogle Analyticsをはる - 雲雀は高く空を舞い はてなグループにGoogle Analyticsをはる - 雲雀は高く空を舞い のブックマークコメント

プロパティIDを当てはめてペースト.

<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
<script type="text/javascript">
_uacct = "ウェブ プロパティ ID";
urchinTracker();
</script>

[][]OpenCV 2.0 for Snow Leopard with x86_64 architecture (失敗) OpenCV 2.0 for Snow Leopard with x86_64 architecture (失敗) - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - OpenCV 2.0 for Snow Leopard with x86_64 architecture (失敗) - 雲雀は高く空を舞い OpenCV 2.0 for Snow Leopard with x86_64 architecture (失敗) - 雲雀は高く空を舞い のブックマークコメント

OpenCV 2.0が出ているという事でインストールしてみた.

手順としては、こちらからダウンロード。CMake (GUI)でconfigureして、make/make install。

CMakeやCMakeCache.txtでPython pathとかなんとかを設定してmakeをするんだけど、このときarchitecturesをi386にするとmakeできるんだけど、x86_64にするとproject generatorをUnix MakefileにしてもXCodeにしても失敗する.これはCarbonが64bitでないためにhighguiのコンパイルができないから.

んーと、OpenCVのバージョンアップとかのどこかの段階でうまくいくようになるのかな.Pythonを64bitで使ってるために、32bit版OpenCVだとarchitecture errorで使えない.パッチを当てて32bit周りを無効にしてbuildするなんて方法もあるみたいだけど、それはそれでなんか片手落ちな気がする(というか、調べきれてない)ので保留。

とりあえずi386でインストールしてみた.CMakeの設定はこんな感じで。インストールパスは/opt/local/opencvとした.

f:id:allegro:20091022223614p:image

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091023

2009-10-22

[]Ubuntu 8.04 to 8.10 on VMware playerでのネットワークトラブル Ubuntu 8.04 to 8.10 on VMware playerでのネットワークトラブル - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - Ubuntu 8.04 to 8.10 on VMware playerでのネットワークトラブル - 雲雀は高く空を舞い Ubuntu 8.04 to 8.10 on VMware playerでのネットワークトラブル - 雲雀は高く空を舞い のブックマークコメント

Ubuntu 8.04から8.10にアップデートしたところネットワークが見つからなくなった。

ifconfigすると、eth0(イーサネットアダプタ)が見つからない。/etc/network/interfacesを見ると、loしか記述されとらんけんね、と言う事で編集

# sudo pico /etc/network/interfaces

auto lo

iface lo inet loopback

auto eth0

iface eth0 inet dhcp

編集後ネットワークの再起動(する前から繋がったようなそうでもないような)

/etc/init.d/networking restart

これで無事繋がったので改めて、9.04にアップデートするよ!

[]Ubuntu with VMware on Windows Ubuntu with VMware on Windows - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - Ubuntu with VMware on Windows - 雲雀は高く空を舞い Ubuntu with VMware on Windows - 雲雀は高く空を舞い のブックマークコメント

目次

パフォーマンスはそれほどcoLinuxと変わらないんじゃ、というのを何となく散見したのと、VMwareでどうもしたい事はできるみたいだし、という事でcoLinuxのインストールチェック検証はやめにしました。

VMwareすごい簡単問題なし.Xenとかだとどうなのかな?

仮想マシンの設定

1) 仮想ファイルUbuntu.vmxをメモ帳などで変更して、割当メモリとCPUコアの数を変更。

#追記

numvcpu="2"

#変更

memsize="1024"

これでVMware playerの使用CPUコア数2個、メモリ1024MBになる。

2) ビープ音の無効化

windows vistaの場合は

C:\Users\<ユーザ名>\AppData\Roaming\VMware\preferences.ini

windows xpの場合はこちら、かな?C:\Documents and Settings\jdoe\Application Data\VMware\preferences.ini )

mks.noBeep = "TRUE"

と追加してVMwareを再起動.

アップデート

何はともあれアップデート。

システム>システム管理>Synapticパッケージマネージャとアップデートマネージャからアップデート.

VMware用ディスクイメージは8.04LTSなので、ディストリビューションをアップデートする.

(8.04LTSは長期サポート版でセキュリティアップデートなども2010年までサポートしているのでアップデートしないという選択肢もある/あたらし物好きなのでアップデートしました)

そのためにシステム管理>ソフトウェア・ソース>アップデートから新しいディストリビューションリリースの通知を「通常リリースでも通知」に変更する.

アップデートマネージャで一回アップデートした後、ディストリビューションのアップデートが可能となるのでそれで8.04から新しいのにする.

あと、同じくシステム管理の日本語版セットアップヘルパで日本語用のなんか必要そうな(でも僕の場合全部不要) ものをインストール.

sshdのインストール

何はともあれapt-get

sudo apt-get install ssh

ネットワーク設定をブリッジにするとこれで外部から繋がるようになる.(ホストOSからのみつなぐ場合はNATでもいいのかなよくわからない。)

アドレスとかはifconfigでみれる。

KamaluddeenKamaluddeen2015/08/12 04:47I've been lokiong for a post like this for an age

2009-10-21

[]Ubuntu on Windows Ubuntu on Windows - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - Ubuntu on Windows - 雲雀は高く空を舞い Ubuntu on Windows - 雲雀は高く空を舞い のブックマークコメント

目次

ちょっと良いマシン(Core i7/2.7位GHz/3GB/Windows Vista)を手に入れたんだけど、共用しなくちゃならないのでMacUbuntuをいれる訳に行かない…という訳で久しぶりにUbuntu on Windows環境を構築。

昔はcoLinuxを使ったんだよな、とはてブを見返したところ前にその環境を作ったのは2005年との事だった…遠い目.

欲しいもの

僕の欲しい環境は

  • マシンの常用OSはWindows。その上のレイヤーでUbuntuが動く(デュアルブートでなし)
  • 外部からネットワーク越しにUbuntu on Windowsに接続できる
  • ある程度のパフォーマンスが確保できる
  • GUIは別に要らない

と言ったところ.

実現方法

1) Ubuntu with VMware player on Windows

WindowsアプリとしてVMwareを動かしてその上にUbuntuをインストールする.

この方法だと仮想環境として利用できるのでともかく手軽.

インストール方法などはこちらに詳しいけど、

  1. VMware playerをダウンロード&インストール(名前入れたり何なりとダウンロードまでがめんどい)
  2. 前述のページからUbuntu仮想ファイルをダウンロードして、それをVMwareから起動する

これだけ。仮想ファイルごとバックアップしておけばロールバックなども手軽.外部外部ディスクファイルを外部HDDと見なして使えるか、また、ネットワーク越しに使えるかはこれからテスト。

あと、アプリケーションレイヤーでOS丸ごと?、マシン丸ごと?エミュレーションするのでオーバーヘッドが激しいのでパフォーマンスがどれほど出るのか謎.マシンが速いので補ってあまりあるような気もする…。

2) coLinux with Windows

昔はすごい致命的なバグとかあったんだよ…(懐古廚

こちらのメリットはLinuxカーネルをWindows上で動かすので速い.あと、サービス化できる、仮想ファイルでなく物理HDDをディスクとして利用可能.

デメリットはVMWareにくらべてめんどいむずい(イメージがある)

QEMUとか使ってなんちゃらかんちゃらとは聞くけどここら辺はまだフォローアップできてない.

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091021

2009-10-20

[]オブジェクト指向な書き方 at Matlab 2008a オブジェクト指向な書き方 at Matlab 2008a - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - オブジェクト指向な書き方 at Matlab 2008a - 雲雀は高く空を舞い オブジェクト指向な書き方 at Matlab 2008a - 雲雀は高く空を舞い のブックマークコメント

Matlab 2008aから、クラス定義の仕方とかが変わってずいぶん使いやすくなったようなのでメモ.以前のは使いづらかった記憶があって使ってなかったのでどういう風にやってたのか分からない…。(ので、ネスト関数使ってむちゃくちゃな書き方をしてた.)

リファレンス

リファレンスはこちら.Matlab R2008aのもの。

各種詳細な情報と例題へのリンク

記述例

classdef transducer<handle
    %<handleとすることでハンドルクラスのサブクラスと成る。これにより生成されるオブジェクトはすべて元オブジェクトのハンドル(参照渡しとなる
    properties
        soundspeed = 1540;
        samplingfrequency = 100e6;
        centerfrequency = 3.5e6;
        lambda
        temp=0
    end
    
    methods
        function obj = transducer(f0, fS)
            %% コンストラクタメソッド
            if nargin == 0
            elseif nargin == 1
                obj.centerfrequency = f0;
            else
                obj.centerfrequency = f0;
                obj.samplingfrequency = fS;
            end
        end
        
        function print_soundspeed(obj)
            %% method print
            disp([num2str(obj.tmp), ' : soundspeed = ', num2str(obj.soundspeed)])
            obj.temp = obj.temp+1;
        end
        
        function print_lambda(obj)
            lambda = obj.soundspeed / obj.centerfrequency;
            disp(lambda)
            obj.lambda = lambda;
        end
    end
end

1クラス1ファイル.class定義はclassdef ~ endブロックで。その中にインスタンス変数となる properties ~ endとメソッドをmethods ~ endそれぞれ定義する.

properties

インスタンス変数.properties~endブロックで定義する.ここで使用できるのは定数とmatlab式のみ。(変数は使えない!)

また、プロパティにたいして以下のようにして属性を指定できる

    properties (Hidden)
    % 外部から見えない
        propertyA
    end
   
    properties (Access=public) 
    % Access, SetAccess, GetAccess / Public, protected, private
    end
    
% Access / Get and Set
% GetAccess / Getのみ
% SetAccess / Setのみ
% Public アクセス制限なし
% protected クラスまたは導出クラスからのアクセス
% private  クラスメンバからのみアクセス

など。

methods

クラス名と同じmethodを定義する事でコンストラクタになる

つづく!



めも:めりも引っ越し めも:めりも引っ越し - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - めも:めりも引っ越し - 雲雀は高く空を舞い めも:めりも引っ越し - 雲雀は高く空を舞い のブックマークコメント

ついでにめりもも。

いままで

  • ちびめりも in fortissimo
  • めりも in dolcevita

これから

  • both of them are in dolcevita

lab系PCは音楽、us系は適当、labサーバ系はもっと適当

めも:クローラの配置かえた めも:クローラの配置かえた - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - めも:クローラの配置かえた - 雲雀は高く空を舞い めも:クローラの配置かえた - 雲雀は高く空を舞い のブックマークコメント

これから

on brain

huaxin, xichui, xuan

backup db_file to nas (at midnight)

on lark

download db_file from nas and make daily_stat_report

いままで

on lark

huaxin, xichui, xuan

make daily_stat_report

(no backup)

[] pythonからsftpを使いたい  pythonからsftpを使いたい - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク -  pythonからsftpを使いたい - 雲雀は高く空を舞い  pythonからsftpを使いたい - 雲雀は高く空を舞い のブックマークコメント

シェルスクリプトとかかければそれでいいんだろなーとか思いつつ.pythonからsftpを使うにはsshを使えるモジュールparamikoを使う

paramikoの導入はubuntuなら

sudo apt-get install python-paramiko

macportなら

sudo port install py26-paramiko

でOK。

ファイルの転送は以下。

import os, paramiko

# prepare
server = sshserver
username = sshuser
password = sshpass

localfile = file0
remotefile = file0

# ssh connection
ssh = paramiko.SSHClient()
ssh.load_host_keys(os.path.expanduser(os.path.join('~', '.ssh', 'known_hosts')))
ssh.connect(server, username=username, password=password)

# file transfer via sftp
sftp = ssh.open_sftp()

sftp.chdir(targetdir)
sftp.put(localfile, remotefile)

sftp.close()
ssh.close()

変数をsftp越しにファイルに保存するには以下.

sftp = ssh.open_sftp()
remote_file = sftp.file(remotefile, “wb”)
remote_file.set_pipelined(True)
remote_file.write(data)
sftp.close()

まぁこんなかんじ。

tivhhxzuuditivhhxzuudi2011/03/04 17:4490lJzr <a href="http://idqudmeebpew.com/">idqudmeebpew</a>, [url=http://ojtxowrgzmqp.com/]ojtxowrgzmqp[/url], [link=http://fvecrqqbxlmi.com/]fvecrqqbxlmi[/link], http://dkoisewmuxcl.com/

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091020

2009-10-18

[]今動いてるクローラ 今動いてるクローラ - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - 今動いてるクローラ - 雲雀は高く空を舞い 今動いてるクローラ - 雲雀は高く空を舞い のブックマークコメント

そう言えば、という事でメモ

  • a) public-timeline new-post crawler
    • 20分ごとに3page分取得
  • b) existed id-post crawler x2
    • dbに存在するuseridを適当に一つ取得して、そのidのidページとpostをそれぞれ最大100ページまで200countずつ取得 (20k post以上してる人はそうは多くないんじゃないかな…)
  • c) new id-post crawler x2
    • dbに新しく登録されたuseridについて、idページとpostを取得
  • d) following-timeline new-post crawler
    • 20分ごとに適当なuserのfollowing pageを200件1page取得。

これらをデータベースに登録。登録時にidが既存か新規かチェックして新規の場合はクローラーCにわたす。



ちなみに以前は

  • public new-post crawler
  • following-timeline new-post crawler
  • newly id-post crawler
  • hazuki following-timeline jumper
    • hazukiのtimelineのp(乱数)ページ〜p+10ページを取得
  • public-timeline jumper
    • public-timelineのp(乱数)ページ~p+50ページを取得

なんて事をしてました.ランダムにとるより、地道に1ページずつとっとけば良かったとか思わないでもないです

twitter

いまのところfollowingtimelineだけ。favotterから適当にid引っ張ってきてクロールするとかなんかこう、クラスタを越えたクロールしたいんだけど未定.

[]Ubuntu 9.04にpythonいろいろインストール Ubuntu 9.04にpythonいろいろインストール - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - Ubuntu 9.04にpythonいろいろインストール - 雲雀は高く空を舞い Ubuntu 9.04にpythonいろいろインストール - 雲雀は高く空を舞い のブックマークコメント

apt-getつかう。aptにしろportにしろパッケージシステム便利すぎる。windowsではここら辺ってどうするんだろう?

apt-get update #リストのアップデーと
apt-get upgrade # リストをもとにインストールされた項目のアップデート
apt-get install python-twitter
apt-get install python-numpy
apt-get install python-scipy
apt-get install python-matplotlib
apt-get install python-lxml

とかなんとか。

python 2.5.xが入っててそれを2.6にアップデートしたかったんだけど、アップデートじゃなくてインストールじゃなくちゃだめかな?と言う事で保留中.それぞれで入ったバージョンが何かは確認してない。

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091018

2009-10-16

2009-10-16 - 雲雀は高く空を舞い を含むブックマーク 2009-10-16 - 雲雀は高く空を舞い のブックマークコメント

tmp

import salvage
s = salvage.salvage()
y = 2008
for m in [x+1 for x in range(12)]:
	for d in [x+1 for x in range(31)]:
		s.main(y,m,d)

KerriannKerriann2011/10/03 04:30At last! Soomnee who understands! Thanks for posting!

hsygwvdrhsygwvdr2011/10/03 18:06d047Ea <a href="http://oybhwdojplfi.com/">oybhwdojplfi</a>

bfecojzbfecojz2011/10/05 00:422mL85Y , [url=http://eqpcriraifue.com/]eqpcriraifue[/url], [link=http://talcinhzngnt.com/]talcinhzngnt[/link], http://zefkqmsgznsk.com/

ybvctayibryybvctayibry2011/10/06 18:14BT20z6 <a href="http://cylhpqpedoup.com/">cylhpqpedoup</a>

nphrmlnphrml2011/10/07 02:01FO8Ob6 , [url=http://wfnwgdyivblt.com/]wfnwgdyivblt[/url], [link=http://mlqirtuvzrjo.com/]mlqirtuvzrjo[/link], http://tmjsitngzytl.com/

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091016

2009-10-14

json memo json memo - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - json memo - 雲雀は高く空を舞い json memo - 雲雀は高く空を舞い のブックマークコメント

適当に

要素はリスト[]、辞書/オブジェクト/ハッシュ{}、数値、文字列、logical、null。

例)

[1, 2, 3,

"food":"リンゴ",

"status":

{"はらへ":"超腹へ", "健康":"良好"},

"記念日":

[2005,10,7]

]

シンタックスチェック

firefox firebugのコンソールで var x=なんちゃら、とか書いて実行する事でJSONのシンタックスチェック可能

matlabの構造体の書き出しに使えそういや使う

(目的)

過去クロールデータ(matlab)のサルベージ

matlab struct -> json -> sqlite3/python

[]リスト内包表記とλ式 リスト内包表記とλ式 - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - リスト内包表記とλ式 - 雲雀は高く空を舞い リスト内包表記とλ式 - 雲雀は高く空を舞い のブックマークコメント

Pythonのリスト内包表記が便利だ。すごく便利。

内包表記について

x = [1,2,3,4,5,6,7,8]という配列があった時に、それぞれの数値を2乗した新しい配列を作るというとき、プリミティブにするんだったらfor文を使って次のように書く(かな)

x = [1,2,3,4,5,6,7,8]
y = []
for t in x:
  y.append(t**2)

これをリスト内包表記によるとこうなる

x = [1,2,3,4,5,6,7,8]
y = [t**2 for t in x]

print y
[1, 4, 9, 16, 25, 36, 49, 64]

[処理 for (xの中のそれぞれの要素)]シンプル。

処理系と処理内容によってfor文よりもだいぶ早い&シンプルにかけるという事でお気に入り。

ちなみに、matlabだとこう

y = x.^2

if文と組み合わせる

例えばさっきのxにたいして、奇数だけ取り出したいときは末尾にif文を書くと、条件が真となる項に対して処理が行われる

x = [1,2,3,4,5,6,7,8]
y = [t**2 for t in x if t%2==1]

print y 
[1, 9, 25, 49,]

条件分岐はどうするの?

ただ、内包表記中にif分は使えてもif else..の三項演算子は使えない(のかな)xの項が3以下の時と3より大きいときの処理を分けたいとかは、以下のようにしても文法エラーになってしまう

y = [t**2 for t in x if t<4 else t+1]

こういうときはラムダ式の出番、かな。

f = lambda x: 1 if x < 4 else 2
# xが3以下の時1を返してそうでないとき2を返す
y = [f(t) for t in x]

print y
[1, 1, 1, 2,2, 2, 2, 2]
f = lambda x: x**2 if x < 4 else x + 1
y = [f(t) for t in x]

print y
[1, 4, 9, 5, 6, 7, 8, 9]

イテレータ内包表記

[]のかわりに()を使うとイテレータを返す


in Python 3

python3では、内包表記はリストの他にセットとディクショナリにも適用できるみたい

>>> [ n*n for n in range(5) ] 
[0, 1, 4, 9, 16] 
>>> { n*n for n in range(5) } 
{0, 1, 4, 16, 9} 
>>> { n: n*n for n in range(5) } 
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16} 
トラックバック - http://chick.g.hatena.ne.jp/allegro/20091014

2009-10-12

[]グループキーワード グループキーワード - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - グループキーワード - 雲雀は高く空を舞い グループキーワード - 雲雀は高く空を舞い のブックマークコメント

ちゃんとカテゴリ分けをしてないのでせめてグループキーワードは作るようにしようとか思った。

最近にキーワードはこんな感じ…かな。

iPython, matplotlib, SciPy, NumPy, Python, Twisted

[]とりあえず気になる とりあえず気になる - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - とりあえず気になる - 雲雀は高く空を舞い とりあえず気になる - 雲雀は高く空を舞い のブックマークコメント

非同期ネットワークアプリケーションフレームワークのTwistedと、科学工学系フレームワークのSciPhy。

SciPyは先日カンファがあったりしたみたいでそれを見てるとPyCUDAとかPyGLとか色々面白そうなものがわくわく。NumPyとどう違うのかとかそう言うのもよく分からないけど、SciPy, NumPy, Matplotlib, iPythonとかでMatlabは置換できるんじゃないのかしらと言う感じ。Pythonすごいな。

Twistedはよく分からないけど、クローリングを非同期に行えると何か良いんじゃないのかなーというぼんやりとした期待。まだここら辺はよく分からぬ。

とりあえずportから両方インストールはできる。SciPyは色々依存してるので時間かかったような。

sudo port install  py26-twisted
sudo port install py26-scipy
トラックバック - http://chick.g.hatena.ne.jp/allegro/20091012

2009-10-11

[]cron on Snow Leopard cron on Snow Leopard - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - cron on Snow Leopard - 雲雀は高く空を舞い cron on Snow Leopard - 雲雀は高く空を舞い のブックマークコメント

/usr/lib/cron/tabs/<user_name>を編集する. TigerのころからMac OS Xではcronは動いてなくて、launchdが代替となっているとか.とりあえず上記ファイルが作成されるとlaunchdはcronを起動するので問題はなし。

書き方の例

0,10 * * * * command # 毎時0分と10分にに実行

*/2 * * * * command # 2分ごとに実行
0 * * * * command # 毎時0分に実行
12 0 * * * command # 毎日0時12分に実行
2 0-6 * * * command #毎日0時から6時は、2分に実行する
分 時 日 月 曜日 command #曜日は0(日曜)~6(土曜), 7(日曜)までの数字

launchdは高機能で

  • 秒単位の定期実行も問題なく管理できる。
  • ファイルを指定して、それが更新された時だけ実行こともできる
  • 設定ファイルは ~/Library/LaunchAgents/com.bebekoubou.stickiesdata.sync.plist

詳しくはこちら

はてなブックマーク - cronからlaunchdへ(より効率的なジョブ管理を目指して) - ザリガニが見ていた...。

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091011

2009-10-10

[]ブロックコメント文 ブロックコメント文 - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - ブロックコメント文 - 雲雀は高く空を舞い ブロックコメント文 - 雲雀は高く空を舞い のブックマークコメント

通常のコメントは %以降改行までだけど、ブロックコメントを実現するには%{\n, \n%}でかこむ

% 通常のコメント

%{
ブロックコメント
部分
%}

[]matplotlib 二軸グラフを書く matplotlib 二軸グラフを書く - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - matplotlib 二軸グラフを書く - 雲雀は高く空を舞い matplotlib 二軸グラフを書く - 雲雀は高く空を舞い のブックマークコメント

2軸グラフを書くにはsubplotを一枚のグラフ上に重ねるという手法をとる。…ちょっと力技のような気もするけどまぁ…まぁ…

f:id:udzuki:20091010211253p:image:w500

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid.parasite_axes import SubplotHost

""" define data from h """
starer = [x['starernum'] for x in h]
star = [x['starnum'] for x in h]
post = [x['postnum'] for x in h]
idpost = [x['idpostnum'] for x in h]
keyword = [x['uniquekeywords'] for x in h]
starpost = [x/float(y) for x,y in zip(star,post)]
user = [x['uniqueusernum'] for x in h]

width = .3
indx = arange(24)

starpost = [x/float(y)*100 for x,y in zip(star,post)]
starerposter = [x/float(y)*100 for x,y in zip(starer, user)]
xx = ones((24,1))*100

""" preprocess of plot """
fig = plt.figure(1)
host = SubplotHost(fig, 111)
fig.add_subplot(host)
par = host.twinx()

""" prepare graph """
b1 = host.bar(indx+width*.75*0, post, width, color='r')
b2 = host.bar(indx+width*.75*1, keyword, width, color='b')

p1 = par.plot(indx, starpost, '-o',color='c',ms=5, lw=3, alpha=.7)
p2 = par.plot(indx, starerposter, '-o',color='m',ms=5, lw=3, alpha=.7)
p3 = par.plot(indx, xx,color='y')

host.set_xlabel('hour')
host.set_xticks(indx)
host.set_ylabel('posts')
host.set_title('10-09')
host.set_xlabel("Hour")
host.legend((b1[0], b2[0], p1,p2), ("post","keyword","star/post", 'star-er/post-er'), loc=0, shadow=True)
par.set_ylabel('rate (%)')

xlim(-.25,24)
# save
savefig('%d-%d Stars.png'%(mm,dd))
# 描画
fig.show()

こんな感じで。試行錯誤の初期はなんだかよく分からないけど描画できない事がちょいちょいあったんだけど、原因追及する前にそれが出なくなってしまった…なんだったんだろか…subplotについて今度調べよう。

グラフはこちらのもの

[]iPython 設定 iPython 設定 - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - iPython 設定 - 雲雀は高く空を舞い iPython 設定 - 雲雀は高く空を舞い のブックマークコメント

.ipython/ipythonrcをいじる

とりあえずいじったのは行間とかの設定だけ

# 入力行を一行あける → あけない
305 # separate_in \n
separate_in 0

#プロンプトをちょっと短縮
# prompt_in1 'In [\#]: '
prompt_in1 '[\#]: '
# prompt_out 'Out [\#]: '
prompt_out '[\#]: '

[]iPython Tips - 変数名とかを確認したり変数を保存したりする iPython Tips - 変数名とかを確認したり変数を保存したりする - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - iPython Tips - 変数名とかを確認したり変数を保存したりする - 雲雀は高く空を舞い iPython Tips - 変数名とかを確認したり変数を保存したりする - 雲雀は高く空を舞い のブックマークコメント

確認

%who, %whos, %resetを使う。

#とりあえず変数名を確認
%who
a	i

#詳しく確認
%whos
Variable   Type    Data/Info
----------------------------
a          list    [[], [], [], [], []]
i          int     4

#リセットしたい
%reset
Once deleted, variables cannot be recovered. Proceed (y/[n])?  
# yにすれば変数全部削除

保存

store, >, >>などなど。iPythonを終了しても値は保存される。

x = [x/pi for x in arange(34)]

# 保存
store x
Stored 'x' (List)

# 確認
store
Stored variables and their in-db values:
x             -> [0.0, 0.31830988618379069, 0.63661977236758138, 0.

# iPythonを再起動しても保存されている
store
Stored variables and their in-db values:
x             -> [0.0, 0.31830988618379069, 0.63661977236758138, 0.


# load x
store -r x

# stored dataの削除
store -d x

# 全stored dataの削除
store -z

# ファイルに保存
sotre x > listx.txt

# ファイルに追記
sotre x >> listx.txt

便利!だけどファイルに保存した変数を読み込むにはどうしたら良いのかな、無理かな?

[]iPython tips - 引数の括弧が面倒 iPython tips - 引数の括弧が面倒 - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - iPython tips - 引数の括弧が面倒 - 雲雀は高く空を舞い iPython tips - 引数の括弧が面倒 - 雲雀は高く空を舞い のブックマークコメント

fをlambda式を使ってと定義する。

f = lambda x,y:x**2+y**2

f(x,y)=x^2+y^2

引数についてのちょっとしたTips

# 普通の使い方
In [20]: f(2,3)
Out[20]: 5

# fに続く数字を引数として
In [21]: f 2,3
-------> f(2,3)
Out[21]: 5

# /をつけると,を省略できる
In [22]: /f 2 3
-------> f(2,3)
Out[22]: 5

#,をつけると文字列として引数をとる
In [23]: ,f 1 2
-------> f("1", "2")
Out[23]: '12'

[]matplotlibつかってみた matplotlibつかってみた - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - matplotlibつかってみた - 雲雀は高く空を舞い matplotlibつかってみた - 雲雀は高く空を舞い のブックマークコメント

f:id:allegro:20091010010008p:image

from pylab import *
import twitter, time
api = twitter.Api(twitterid, twitterpassword)

dd = 9
me = api.GetUserTimeline('allegrovivace','200')
isreply = [time.localtime(x.created_at_in_seconds) for x in me if x.in_reply_to_user_id]
isnotreply = [time.localtime(x.created_at_in_seconds) for x in me if not x.in_reply_to_user_id]

h = [x.tm_hour for x in isnotreply if x.tm_mday==dd]
h0 = []
for x in arange(24):
    h0.append(len([y for y in h if y == x]))

ind = arange(24)
h1=bar(ind, h0, width)

##
r = [x.tm_hour for x in isreply if x.tm_mday == dd]
r0 = []
for x in arange(24):
    r0.append(len([y for y in r if y == x]))

r1=bar(ind+width, r0, width, color='c')
xticks(ind+width, ind)
xlim(-.25,24)

x = arange(24)
y = numpy.ones((24,1))*5
plot(x,y)
y = numpy.ones((24,1))*10
plot(x,y)
y = numpy.ones((24,1))*15
plot(x,y)
legend((h1[0], r1[0]), ('notreply','reply'), loc=0, fancybox=True, shadow=True)

,title allegrovivace\'s_posts
,xlabel hour
,ylabel posts

ヒストリの確認は

%hist

%history

%hist 100

など。%ではじまる予約語がいくつかあるのでなんとかかんとか。%hist?でヘルプが見れたりする。

あと、次の二つは同じ。あたまに「,」をいれないと文字列じゃなくて数字列になる、のかな?

,title allegrovivace\'s_posts
title("allegrovivace\'s_posts")

matlabとほとんど同じに使えるので楽、かな。その割にはチュートリアルがすごく充実してるので、いろいろできるのかも。

あと、backendにQuartz@Mac OS Xが指定できるのはものすごく楽なのではないでしょうか。。。

2009-10-09


[python]matplotlib - backend MacOSX  [python]matplotlib - backend MacOSX - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク -  [python]matplotlib - backend MacOSX - 雲雀は高く空を舞い  [python]matplotlib - backend MacOSX - 雲雀は高く空を舞い のブックマークコメント

version .98.4でQuartz@Mac OS Xがバックエンドに加わったんだとか。wxよりも早いよ!とのこと。pythonでは十分にテストしたけどiPythonだとあまりテストしてない…けど原理的には動くはず!とのことだとか。

x1 = [x/1000.0*pi*2 for x in range(1000)]
y1 = sin(x1)
plot(x1, y1)

f:id:allegro:20091009231038p:image

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import pylab
import random
import numpy as np

fig = pylab.figure()
ax = Axes3D(fig)
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.jet)

pylab.show()

f:id:allegro:20091009231037j:image

[]matplotlib - 設定ファイル matplotlibrc matplotlib - 設定ファイル matplotlibrc - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - matplotlib - 設定ファイル matplotlibrc - 雲雀は高く空を舞い matplotlib - 設定ファイル matplotlibrc - 雲雀は高く空を舞い のブックマークコメント

設定はこちらをさんこうに.matplotlib/matplotlibrcを編集する

とりあえず、

interactive : False

#show()をしなくてもグラフが描画される

backend : TKAgg

# default backendをTKAggにする。ここにMacOSXっていう項目があるけどなんだろう…

だけ設定した。

[]matplotlib backend (2) GTK, GTKcairo matplotlib backend (2) GTK, GTKcairo - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - matplotlib backend (2) GTK, GTKcairo - 雲雀は高く空を舞い matplotlib backend (2) GTK, GTKcairo - 雲雀は高く空を舞い のブックマークコメント

なんか突然できたのでメモ。matplotlibのportfileを眺めていたらvariantなる記述を発見。これはなんぞやーと思ったら、portではvariantsによってインストールオプションを指定できます、とのこと。

71 variant cairo description "Enable Cairo backends" {

72 depends_lib-append port:py26-cairo

73 post-patch {

74 reinplace "s|MP_Cairo=False|MP_Cairo=True|" ${worksrcpath}/setupext.py

75 }

76 }

port variantsで指定できるオプションを見れる。

port variants py26-matplotlib

py26-matplotlib has the variants:

cairo: Enable Cairo backends

darwin_8: Platform variant, selected automatically

ghostscript: Enable GhostScript support

gtk2: Enable GTKAgg backend

latex: Enable LaTeX support

qt4: Enable QT4Agg backend

[+]tkinter: Enable tkAgg backend

wxpython: Enable wxAgg backend

というわけであらためて、インストール

sudo port install py26-matplotlib +cairo +gtk2 + tkinter

これで無事、cairo, gtk2,tkinterが使えました!使用法などはまた改めて。とりあえず、出力に思ったほどの違いは出てないような気がしました。

[]matplotlib backend matplotlib backend - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - matplotlib backend - 雲雀は高く空を舞い matplotlib backend - 雲雀は高く空を舞い のブックマークコメント

matplotlibでグラフを書くにはbackendにgraphic engineを指定する必要がある。とりあえずはこんな感じでok

import matplotlib

matplotlib.set('TkAgg')

こちらによるとbackendには色々選べるようで

GTKAgg
Gimp系みたい。Agg rendering to a GTK canvas (requires PyGTK)
GTK
GDK rendering to a GTK canvas (not recommended) (requires PyGTK)
GTKCairo
Cairoつかえるの?Cairo rendering to a GTK Canvas (requires PyGTK)
WXAgg
exWidgetsをつかえるとか。それぞれのOSネイティブ環境(の用な?)グラフィックが可能。Agg rendering to to a wxWidgets canvas (requires wxPython)
WX
Native wxWidgets drawing to a wxWidgets Canvas (not recommended) (requires wxPython)
TkAgg
何もインストールする事なく使えた。X11系?Agg rendering to a Tk canvas (requires TkInter)
QtAgg
Qt系。Agg rendering to a Qt canvas (requires PyQt)
Qt4Agg
最新のQt系。Agg rendering to a Qt4 canvas (requires PyQt4)
FLTKAgg
なんかよくわからないけどcross-platform/C++。Agg rendering to a FLTK canvas (requires pyFLTK)

AGGはこちら関係でAnti-Grain Geometryなもの、ちゃちゃっと見た感じアンチエイリアシングおよびサブピクセル精度のグラフィックを実現するもの、とか。AGGありとなしならとりあえずAGGを使っておけば良いんじゃないかしら。


とりあえず、wxaggが幸せそうな雰囲気がする。あとCairoはちょっと気になる。

追記

以下には特に有益な情報はありません。

とりあえずwxWidgets 2.9がportsに入ったら改めて挑戦します。


2

と思ったら

sudo port install py26-wxpython

にこけた。

のでおもむろに

sudo port install py26-gtk

3

あらためて

sudo port -d install py26-wxpython

見てみると2つエラーが出てて、

../src/common/intl.cpp:2060: error: 'smScriptLang' was not declared in this scope

../src/common/intl.cpp:2060: error: 'GetScriptVariable' was not declared in this scope

これは…と思って調べてみたらあった。

The reason is that the default compiler on 10.6 is gcc 4.2, and if you are on a Core 2 Duo which is 64-bit capable, you end up compiling Carbon-only 2.8 for 64 bits which fails, due to the lack of 64-bit Carbon support. If you want 64-bit wxWidgets on OS X you'll need 2.9+ and configure -with-osx_cocoa - see below; but remember that 2.9 is not an official, stable release and wxOSX/Cocoa is not yet complete.

Snow Leopardのコンパイラがgcc4.2でC2Dは64bit動作可能で、とかなんとかでwxWidgets 2.8は32bit carbonでしか動かないからコンパイルにこける。

なんとか動かしたかったら2.9以上で-with-osx_cocoaにてコンパイルすれば良いけど、いまのところ2.9はアンオフィシャルで非安定でwxOSX/Cocoaはまだまだ作成途中だから覚悟しとけ。

http://wiki.wxwidgets.org/Development:_wxMac

とのこと。

So, to compile with 2.8 on a 64-bit Mac, you have to explicitly indicate the architectures you want:

wx2.8でなんとかしたかったら以下のようにするのが現実解。

つまり 32bit intel用にコンパイル。もしあれだったら -arch ppcも加えればユニバーサルバイナリにする事もできるよ

arch_flags="-arch i386"
./configure CFLAGS="$arch_flags" CXXFLAGS="$arch_flags" LDFLAGS="$arch_flags" OBJCFLAGS="$arch_flags" OBJCXXFLAGS="$arch_flags" ...

This makes the library and samples build nicely for Intel 32-bit targets, and you can also add -arch ppc to the arch_flags so that you can build universal binaries.

とのこと。うーん…32bit…。まぁいいか。

4

とおもったんだけど、wxWidgetsのページを見ると2.9は既にリリースされてるので

port install wxwidgets

としてみた。失敗した。

5

さすがにちょっとちゃんと調べてみようと言う事で検索。

こちらによると

  1. wxwidgets 2.8の32bitでいくか2.9でcocoa 64bitでいくかだけど、だいたい色々64bitになってるし2.9でてるしで今更2.8withCarbon32bitなんて嫌だよね
  2. port wxwidgets-develすればいいんじゃね?portfileあげるよ
  3. おー2.9がはいったありがとう!
  4. ありがとう!
  5. ありがとう!
  6. …あれ?
  7. py26-wxpythonはいらねい…?
  8. はいらないよsvn versionだけが2.9と互換性あるからね
  9. しょうがないな、ほら つ py26-wxpython-devel.portfile
  10. あなたが神か!<いまここ

ってことだった

6

……結局wxwidgesのインストールに失敗。2.9はもう既にリリースされてるんだし、待ってれば使えるようになるだろうという事でいいやにした。

7

pygtkもインストールしてみたけど、

import matplotlib

matplotlib.use('gtkagg')

などとしてもmatplotlib._backend_gdkがないよ、ってことになる。

これは

WxAgg?とかQtAgg?はmatplotlibのインストール前に pythonからwxWidgets、Qtなどのライブラリを呼び出せるようにしておく必要があります

no title

とのこと。あるいは、matplotlibのインストール時にetup.pyで例えば

BUILD_TKAGG = 1

とするとかみたい。

ちなみにno titleをみると

This port provides variants for the different GUIs (gtk2, tkinter, wxpython).

とのことなので、gtk2は使えるみたいだけど…。まぁTkAggが使えるからとりあえず良いにしてwxaggが使えるようになるのを待つかなぁ…

[]matplotlib for python 2.6.3 on Snow Leopard (2) インストール matplotlib for python 2.6.3 on Snow Leopard (2) インストール - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - matplotlib for python 2.6.3 on Snow Leopard (2) インストール - 雲雀は高く空を舞い matplotlib for python 2.6.3 on Snow Leopard (2) インストール - 雲雀は高く空を舞い のブックマークコメント

8

鋼玉(MacBook, Leopard)だとインストールできるのかな?と思って試す。portのバージョンが古いのでportのアップデートから…

sudo port selfupdate

sudo port update outdated

としたところ、lxmlのアップデートで同じようなkeyerrorが。これってもしかしてpyobjc2固有の問題じゃなくてインストーラ(easy_install)かなにかの問題?

とりあえずpython-MLを検索。

9

あった。python2.6.3とDistutilsの問題だとか。portの最新版ではなおってるから新しくしてやってご覧、とのこと。

The problem was due to a Distutils incompatibility released in Python

2.6.3. It will be fixed in 2.6.4 which will be released in two weeks

but the MacPorts maintainers have already patched setuptools to get

around it. Just rerun:

sudo port sync

and try the install again. This time it should also install a new

version of py26-setuptools and the install of py26-pyobjc2 should now

work.

sudo port clean py26-pyobjc2

sudo pot clean py26-matplotlib

sudo port selfupdate

sudo port outdated

sudo port install py26-pyobj2

...できない…おなじKeyErrorが出る…。とりあえずportにまだ実は入ってないのかな、って事で、Distutilの自力インストールをはかるよ。

10

とりあえず、この問題についてはこちらにまとめてあった

File "...setuptools/command/build_ext.py", line 85, in get_ext_filename KeyError: 'xxx'

Cエクステンションを含むパッケージのインストール中にこんな感じのKeyErrorが出ると思うけど、これの対処法は超簡単だ。

The fix is quite simple, it can be done by the end-user or in your package (which is better of course).

In your package : use “Distribute >= 0.6.3″ distribution instead of the usual “Setuptools == 0.6c9″ distribution in you dependencies list. The code remain unchanged and you can still “import setuptools” and have it working fine.

パッケージの配布をする場合はDistribute >= 0.6.3にすればおk

As an end-user: just do a Distribute installation and your fine “(sudo) easy_install Distribute”

エンドユーザの場合はDistributeをインストールすれば良いよ。単純に sudo easy_install Distributeすれば良いよ

no title

これだ! Thank you, Tarek Ziadé!

というわけであらためて

sudo /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/easy_install-2.6 Distribute

sudo port install py26-matplotlib

…できた!

まとめ

今回の問題はSnow Leopard固有の問題ではなくPython 2.6.3とDistribute (<0.6.3)にまつろう問題でした。もう既に解決されつつある、という事なのでこれを書いてる頃にはこれらの試行錯誤は意味がなくなってるかもしれません。あう。

[]matplotlib for python (3) 環境を整えるよ matplotlib for python (3) 環境を整えるよ - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - matplotlib for python (3) 環境を整えるよ - 雲雀は高く空を舞い matplotlib for python (3) 環境を整えるよ - 雲雀は高く空を舞い のブックマークコメント

ここら辺を参考に、必要そうなものを適当にインストール

sudo port install numpy

sudo port install scipy # 時間かかった

sudo port install readline

sudo port install py26-ipython

sudo ln /opt/local/bin/ipython2.6 /usr/local/bin/ipython

RobinsonRobinson2011/10/03 13:55I acuatlly found this more entertaining than James Joyce.

pcwmaxspcwmaxs2011/10/03 18:14Fi7WPH <a href="http://bpqaguzvfbxo.com/">bpqaguzvfbxo</a>

bqsadiobqsadio2011/10/05 00:15KIqeMq , [url=http://bvzncfpqdymf.com/]bvzncfpqdymf[/url], [link=http://fxgbqewsnmgc.com/]fxgbqewsnmgc[/link], http://azlrajevtnar.com/

amebxuyfrwamebxuyfrw2011/10/06 17:22GAgu6v <a href="http://fchquvejjirz.com/">fchquvejjirz</a>

2009-10-08

[]matplotlib for python 2.6 on Mac OS X 10.6 (Snow Leopard) できなかった! matplotlib for python 2.6 on Mac OS X 10.6 (Snow Leopard) できなかった! - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - matplotlib for python 2.6 on Mac OS X 10.6 (Snow Leopard) できなかった! - 雲雀は高く空を舞い matplotlib for python 2.6 on Mac OS X 10.6 (Snow Leopard) できなかった! - 雲雀は高く空を舞い のブックマークコメント

1

グラフを書きたいぞなということで、Matlab風にグラフを書けるライブラリの導入。

macportで入るみたいなのでさくっとport install (進行中)

sudo port install py26-matplotlib

2

py-objc2のインストールに失敗。ちらっと調べるとdarwin 10 (snow leopard)に対応してなかった(当初)とかなんとか。なのでとりあえず portのアップデートをしてもう一回やってみる

sudo port selfupdate
sudo port sync

3

途中pyhton2.6.3にアップデートしててちょっとどきどきしたけど失敗。

---> Building py26-pyobjc2

Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_python_py26-pyobjc2/work/pyobjc-core" && /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6 setup.py --no-user-cfg build " returned error 1

Command output: Traceback (most recent call last):

File "setup.py", line 324, in <module>

'': ['*.bridgesupport'],

File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/core.py", line 113, in setup

_setup_distribution = dist = klass(attrs)

File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/setuptools-0.6c9-py2.6.egg/setuptools/dist.py", line 219, in __init__

File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/setuptools-0.6c9-py2.6.egg/setuptools/dist.py", line 243, in fetch_build_eggs

File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/setuptools-0.6c9-py2.6.egg/pkg_resources.py", line 528, in resolve

raise VersionConflict(dist,req) # XXX put more info here

pkg_resources.VersionConflict: (macholib 1.2 (/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages), Requirement.parse('macholib>=1.2.1'))

Error: The following dependencies failed to build: py26-pyobjc2 py26-pyobjc2-cocoa

macholib 1.2.1が必要だけどmacholibのバージョンが1.2だよ、との事でインストール

sudo port install py26-macholib

いやアップグレードすべきだったかしら。

であらためて、

sudo port install py26-matplotlib

4

raise VersionConflict(dist,req) # XXX put more info here

pkg_resources.VersionConflict: (modulegraph 0.7.3.dev (/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages), Requirement.parse('modulegraph>=0.7.3'))

次はこれ。なんか、こう、間違った事をしているような気がするよ…。

とりあえず、portで入ってるものをアップデート

sudo port upgrade outdated

これで、インストールされてるもののうち、古いものがアップデートされる。

modulegraph7.3.devがアップデートされた。

改めて

sudo port install py26-matplotlib

5

おなじ。modulegraphのdevではだめみたいなのでmodulegraphをいれるよ。

現在modulegraph-0.7.3.develが入ってるとの事でmoduegraph-develとmodulegraphの違いがわからないなーという事で躊躇したけどとりあえずやってみる

sudo port deactivate py26-modulegraph-devel

sudo port install py26-modulegraph

sudo port install py26-pyobjc2

7

できねい。

DEBUG: Backtrace: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_python_py26-pyobjc2/work/pyobjc-core" && /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6 setup.py --no-user-cfg build " returned error 1

Command output: running build

running build_py

running build_ext

Traceback (most recent call last):

File "setup.py", line 324, in <module>

'': ['*.bridgesupport'],

File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/core.py", line 152, in setup

dist.run_commands()

File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/dist.py", line 987, in run_commands

self.run_command(cmd)

File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/dist.py", line 1007, in run_command

cmd_obj.run()

File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/command/build.py", line 134, in run

self.run_command(cmd_name)

File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/cmd.py", line 333, in run_command

self.distribution.run_command(command)

File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/dist.py", line 1007, in run_command

cmd_obj.run()

File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/setuptools-0.6c9-py2.6.egg/setuptools/command/build_ext.py", line 46, in run

File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/command/build_ext.py", line 340, in run

self.build_extensions()

File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/command/build_ext.py", line 449, in build_extensions

self.build_extension(ext)

File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/setuptools-0.6c9-py2.6.egg/setuptools/command/build_ext.py", line 175, in build_extension

File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/command/build_ext.py", line 460, in build_extension

ext_path = self.get_ext_fullpath(ext.name)

File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/command/build_ext.py", line 633, in get_ext_fullpath

filename = self.get_ext_filename(modpath[-1])

File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/setuptools-0.6c9-py2.6.egg/setuptools/command/build_ext.py", line 85, in get_ext_filename

KeyError: '_objc'

while executing

"command_exec build"

(procedure "portbuild::build_main" line 9)

invoked from within

"$procedure $targetname"

Warning: the following items did not execute (for py26-pyobjc2): org.macports.activate org.macports.build org.macports.destroot org.macports.install

Error: Status 1 encountered during processing.

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091008
テクノラティプロフィール