エンジニアが発信する【Python】の記事を集めました

エンジニアが作る最新ITブログ トップ>エンジニアの発信する【Python】

2012年01月06日

[ python ] IPython ver0.12 でシェル起動時にモジュールをロードする方法

Abstract
  1. IPython は環境変数 PYTHONSTARTUP をみない
  2. IPython のバージョンアップで ipythonrc は廃止
  3. IPython 起動時にモジュールを import する方法

IPython は環境変数 PYTHONSTARTUP をみない

Python の使い勝手向上に大きく貢献してくれる IPython ですが、欠点の一つとして 環境変数 PYTHONSTARTUP を無視することが挙げられます。

これまでは、よく使う os や sys などのモジュールを起動時にインポートするには ipythonrc という設定ファイルの execfile セクションに PYTHONSTARTUP と同じファイルを指定していました。が・・・

IPython のバージョンアップで ipythonrc は廃止されました

IPython ver 0.11 以降は仕様が変更されてしまいました。
設定ファイル ipythonrc を書いて IPython を起動すると下記のように警告が表示されます。

$ ipython
WARNING: Found old IPython config file u'/home/fomalhaut/.ipython/ipythonrc' (modified by user)

  The IPython configuration system has changed as of 0.11, and these files will
  be ignored. See http://ipython.github.com/ipython-doc/dev/config for details
  of the new config system.
  To start configuring IPython, do `ipython profile create`, and edit
  `ipython_config.py` in /profile_default.
  If you need to leave the old config files in place for an older version of
  IPython and want to suppress this warning message, set
  `c.InteractiveShellApp.ignore_old_config=True` in the new config.

簡約すると「バージョン 0.11 で設定方式が変更された。これからは ipython_config.py で各種設定をしろ」ということです。

IPython 起動時にモジュールを import する方法

ipython_config.py の c.InteractiveShellApp.exec_files に PYTHONSTARTUP と同じファイルを指定します。

ipython_config.py は Linux の場合は $HOME/.ipython/profile_default ディレクトリ、 Windows の場合は %userprofile%//\/i/i_ipython/profile_default フォルダの中にあります。

たとえば python_startup.py を実行したい場合は下記 1 行を追記 ( すでに c.InteractiveShellApp.exec_files が存在する場合は修正 ) します。

設定例

c.InteractiveShellApp.exec_files = [ "python_startup.py" ]

ファイルを保存したら IPython を起動して確認しましょう。

うまくいっているようです。

2011年02月14日

[dev][groovy]Twitter Botの改善を目指して機械学習勉強中

http://gihyo.jp/dev/serial/01/machine-learning/0003 を参考に勉強中です。 元記事のコード例はPythonですが、ためしにGroovyで実装してみました。 ほとんどがMapの処理なので、GroovyでもPythonとほぼ同じくらいのコード量で実装できますね。 目標は、http://twitter.com/hatena_groovy に混入してくるノイズの除去です。(PCの周辺機器の情報とかね。。。)

2010年04月08日

「Pythonチュートリアル 第2版」

Google App Engineその他OSSで時々登場するPython・・。どういった特徴があるんだろうと思い簡単そうな本を読んでみました。それが「Pythonチュートリアル 第2版」。

本書は最初のところで「Pythonプログラマなら一度は目を通しておくべきものだそうです。
ちなみにターゲットバージョンはPhyton3。GAEはまだPythod2系らしく一部異なる部分があるそうです。

読んでみて・・・うーん、積極的に使いたいと思うようなところは出てこなかったな~。


Pythonチュートリアル 第2版

Pythonチュートリアル 第2版



2009年11月25日

[ 備忘録 /python ] pyrad のサンプルファイルを使うとエラーになる

いつの間にか pyrad1.2 がリリースされていますが、sample フォルダの中の dictionary を使おうとすると↓のようなエラーが発生してしまうことがあります。

Python 2.6.4 (r264:75706, Nov  2 2009, 14:38:03) 
[GCC 4.4.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from pyrad.dictionary import Dictionary
>>> radius_dictionary = Dictionary( "dictionary" )
pyrad.dictionary.Dictionary.ReadDictionary( dictionary )
/home/fmt/dev/pyrad-1.2/example/dictionary
/home/fmt/dev/pyrad-1.2/example/dictionary.compat
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/fmt/dev/pyrad-1.2/pyrad/dictionary.py", line 145, in __init__
    self.ReadDictionary(dict)
  File "/home/fmt/dev/pyrad-1.2/pyrad/dictionary.py", line 323, in ReadDictionary
    for line in fil:
  File "/home/fmt/dev/pyrad-1.2/pyrad/dictfile.py", line 108, in next
    self.__ReadNode(inc)
  File "/home/fmt/dev/pyrad-1.2/pyrad/dictfile.py", line 60, in __ReadNode
    fd = open(fname, "rt")
IOError: [Errno 2] No such file or directory: '/home/fmt/dev/pyrad-1.2/example/dictionary.compat'

dictionary.compat なんて指定していないのに、読み込みエラーが発生しています。

原因は dictionary ファイルの先頭にある $INCLUDE で始まる部分。$INCLUDE の後に記述されているファイルをすべて読み込もうとしているため、ファイルがないとそこでエラーになってしまうのです。

ただ単に pyrad1.2 を試したいとか、余分な辞書ファイルはいらないという場合は以下の行をすべてコメントアウトしましょう。

$INCLUDE dictionary.compat	# compability issues
$INCLUDE dictionary.acc
$INCLUDE dictionary.ascend
$INCLUDE dictionary.bay
$INCLUDE dictionary.cisco
$INCLUDE dictionary.livingston
$INCLUDE dictionary.microsoft
$INCLUDE dictionary.quintum
$INCLUDE dictionary.redback
$INCLUDE dictionary.shasta
$INCLUDE dictionary.shiva
$INCLUDE dictionary.tunnel
$INCLUDE dictionary.usr
$INCLUDE dictionary.versanet
$INCLUDE dictionary.erx
$INCLUDE dictionary.freeradius
$INCLUDE dictionary.alcatel

2009年09月16日

ニコ生アラートAPI for pythonの公開とBlog移動

しばらく自宅サーバにおいてるwordpressで書く。

http://blog.mshibata.net/


あとニコ生アラートAPIのpython library作りました。

ニコ生に対するクエリの結果は基本的にbeautifulsoupで変換してから返します。

githubで後悔公開してます。

nicoliveapi-py – http://github.com/mshibata/nicoliveapi-py

2009年08月15日

worker

from gearman import GearmanWorker

def dump(job):
    #ここらへんでデータ加工するなどする
    ret = job['name']
    return ret

if __name__ == '__main__':
    worker = GearmanWorker(["127.0.0.1:4730"])
    worker.register_function("dump", lambda job:dump(eval(job.arg)))
    worker.work()

上のソースは適当に殴り書きしたやつだから動くかどうかわからないけど、下の方にあるlambdaとevalを組み合わせてる部分だけ見て貰えればわかると思うよ!

あとはDBにクエリを投げて結果を加工して返すようなfunctionとか作ればapiサーバとして動作させることができますね。


python-gearman: http://github.com/samuel/python-gearman/tree/master

2009年03月26日

[ IronPython ] 日本語処理ライブラリ: VisualStudio International Pack

傀儡子の館.Python で、Microsoft が公開している日本語処理用ライブラリの存在を知る。

試そうと思ったものの、傀儡子の館さんのリンク先は「ページが見つかりません」。
MS のディベロッパー製品開発統括部 Blog のリンク先も「ページが見つかりません」。
現在のダウンロード先を探すのが面倒でした。

現在は Service Release1 がリリースされているようで、以下からダウンロードできます。
Microsoft Visual Studio International Pack 1.0 SR1

早く試してみたいところですが、試せる環境が・・・

2009年03月11日

パール

Perl つかうのはマズい気がする。汚すぎる。ヒドい。書いた人、書いたときの状況に左右されるとは思うが。。。 Python がよさげ。 言語に関係ないけど、モジュール強度と結合度の話、One fact in one place の話を理解してもらわないと。。。

2009年03月01日

パール

Perl つかうのはマズい気がする。汚すぎる。ヒドい。書いた人、書いたときの状況に左右されるとは思うが。。。 Python がよさげ。 言語に関係ないけど、モジュール強度と結合度の話、One fact in one place の話を理解してもらわないと。。。

エンジニアが作る最新ITブログ トップ>エンジニアの発信する【Python】

メンバー紹介

タグパネル

ランキング

エンジニアが作る最新ITブログ DODA