ImportError: No module named virtualenvwrapper.hook_loader

virtualenvwrapper.sh起動時に
ImportError: No module named virtualenvwrapper.hook_loader
で動かない。


10.04 → 11.04に上げた時点で、デフォルトPythonが2.6→2.7に
変更になっていた様。


export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
だと2.7を参照してVirtualenvwrapper.sh起動時にエラーが出るので

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.6
にするか、2.7にインストールしなおすか。

Python

最近管理しているサービスのレスポンスが落ちぎみ
ログ解析用のツールをpythonで作ってみようと
やり始めたら、まったく覚えてなくて笑った。1からやり直し


#ファイルの読込

f = open('file.name', 'r')
for line in f:
....

#文字列の分割

string.split(',');

#for文

test_list = [('A','B','C'),('B','C','D'),('C','D','E')]
for str1,str2,str3 in test_list:
  print(str1 + str2 + str3)

>ABC
>BCD
>CDE


#Dictのkey valueを取得するメソッド

dict.items() => key, value
dict.keys() => key
dict.values() => value

#Dict内の存在チェック

dict.has_key('key_name') : true/false
'key_name' in dict : true/false

#printの時、改行させたくない(,で)

print 'output_line',

#print 右寄せ、左寄せ

print('%15s' % 'Hello')
   Hello
print('%-15s' % 'Hello')
Hello


import os
# ディレクトリの存在(ディレクトリか?)チェック

os.path.isdir(_dir_path)

# ファイルの存在(ファイルか?)チェック

os.path.isfile(_fime_path)

# ファイルの削除

os.remove(_file_path)


#ログファイルの収集にsftp転送

import paramiko as ssh
try:
 conn = ssh.SSHClient()
 conn.set_missing_host_key_policy(ssh.AutoAddPolicy())
 conn.connect(ip, username=_user_name , password=_user_pass)
 sfconn = conn.open_sftp()
 sfconn.get(_source_path, _target_path)
finally:
 if conn:
  conn.close()

#ファイルAの末尾にファイルBのデータを追加

open( _fileA_path , "a").write(open(_fileB_path).read())

#連想配列の値でソート

import operator
result_list = sorted(result_list, key=operator.itemgetter(sort_key))

#python遅いわと思ったら俺がおぞすぎな件

for line in f:
 log_list = line[:-1].split(' ');
 result_list.append({'ip':log_list[0],'time':log_list[3],'display':log_list[6],'response':log_list[13] })

 result_list = sorted(result_list, key=operator.itemgetter(sort_key))

結論:インデントに注意

extarnalsのあれこれ

extarnalsで他のプロジェクトのトランクを参照している
プロジェクトのブランチを切った時の覚書


ブランチの作成
$svn copy svn://server/project/trunk svn://server/project/branches/YYMMDD


svn checkout と svn copy の違い
checkout:バージョン管理がトランクと同一、commit/updateがtrunk依存になる
copy:バージョン管理がトランクとわかれ、commit/updateは別の分岐として扱われる


指定したプロパティーの表示
$svn propget svn:externals svn://server/project/branches/YYMMDD
>project1 svn://server/project1/trunk
>project2 svn://server/project2/trunk



指定したプロパティーの設定
$svn propset svn:externals 'xxx svn://server/project/branches/YYYYMMDD' svn://berlin/yrz2-dev/branches/YYMMDD


※プロパティーは1コマンドですべて設定すると言うか、コマンド毎の上書きなので
以下のようにプロパテーをまとめたファイルを作っておくと便利
$vi external_objects.txt

// ディレクトリ名 対象パス
$project1 svn://server/project1/branches/110510
$project2 svn://server/project2/branches/110510

ファイルでやる
$svn propset svn:externals -F external_objects.txt svn://server/project/branches/YYMMDD


// 対象ディレクトリに割り当てられた、プロパティーを表示
$svn proplist svn:externals svn://server/project/branches/YYMMDD
>'.' の属性:
> svn:externals
プロパティーは、その親につけられた属性なので、該当ファイル見てもダメ


・リリース用ソースの作成(おまけ)
// svn用の管理ファイル以外のコピーを作成する。
$svn export svn://server/project/branches/YYMMDD ./temp_dir

Ububtu11.04にしてからシャットダウンができない件

原因が分からない。多分atiのドライバまわりなんだろうけど
シャットダウンすると、トレースがでてそのまま停止
電源長押しで止めるとか、精神衛生上わるすぎ

しかし今日は、色々予定あるので、後日調べる


>> 2011/05/30
参考:
http://ubuntuforums.org/showthread.php?t=1720894

Gitサーバでの運用

外部VPSにGitサーバ用として使おうとインストールしていたがそのまま放置していたので
今作成中のサービスの管理をしようと思いその作業ログ

ユーザ:gitであらかじめ環境を作っておいた

サーバ側作業

$mkdir /home/hoge/project.git
$cd /home/hoge/project.git
$git --bare init
git init の --bare オプション:作業ディレクトリのない空のリポジトリを初期化する

クライアント側作業(作業ディレクトリ内の作業)

$git init
$git add .
$git commit -m "initial commit"
$git remote add origin ssh://git@{ホスト名またはIPアドレス}:{sshポート番号}/home/hoge/project.git
$git push origin master
>Counting objects: 545, done.
>Compressing objects: 100% (535/535), done.
>Writing objects: 100% (545/545), 29.15 MiB | 1.86 MiB/s, done.
>Total 545 (delta 136), reused 0 (delta 0)
>To ssh://git@{hostname}:{#port}/home/hoge/project.git
> * [new branch] master -> master

これで完了。

$git remote add origin ssh://*****
sshポート番号の指定ミスで、pushに失敗下場合、再度同じコマンドを入れると
fatal: remote origin already exists.
となるのでその場合は、

$git remote rm origin

で削除後、再度 git remote add *** を実行すれば良い

Ubuntu 10.04->10.10->11.04

Ubuntuのアップデート

10.04から直接、11.04まではいけない様なので、10.10経由でアップデート
10.10へのアップデート時点で、再起動後、画面表示しなくなった。


Grubの画面以降、一瞬 Ubuntuの起動画面が表示されますが、
すぐにディスプレイがスリープしてしまう。


結果的には、AMD(ATI)のドライバがうまくいっていなかったようで
起動時にgrubで、最新カーネルの recovery mode で起動。


そこで、ドライバの更新を行って、再起動したら通常モードでも起動が出来た
しかし、画面の解像度設定が、今まで(1680x1050)と違い(1440x900)という微妙な状態に・・・

Ubuntuのフォーラムで対処法がありました。
https://wiki.ubuntulinux.jp/UbuntuTips/Hardware/RadeonDriver
プロプライエタリドライバ fglrx の削除--を参照


/** その後、xorg.confを削除 **/
$mv /etc/X11/xorg.conf /etc/X11/xorg.conf_backup
/** gdmの再起動 **/
$sudo /etc/init.d/gdm restart


10.10→11.04のアップデートでは、得にVGAのエラーはありませんでした

以上で、1680x1050 の解像度が選べるようになりました。


バージョンアップの所要時間は、其々90分程、apt-getでサービス等いれていると、
度々confファイル書き換えて良いかきかれるなど放っておくと終わらないかも。



※ F10の対応
半角英数の変換をするときF10を多様する方はUnityのキー割り当てが
邪魔してイライラするのでその解消方法

//Compiz configuration settings manager のインストール

$sudo apt-get install compiz config-settings-manager
$ccsm

/Desktop/Ubuntu Unity Plugin/Key to open the first panel menu :
を他のキー割り当てにする