python-mode + auto-complete-mode + ac-pythonでPythonのコード補完
Pythonの補完をEmacsでシンプルに最小労力で手早く使えるようにする – 牌語備忘録 – pygoの通りなんですが、手っ取り早くEmacsでPythonのコード補完を実現できた。ちなみにpython-modeでもac-pythonは問題なく動いてる。これ設定したらコード書くスピードが今までの1.5倍ぐらい速くなったっす!
Pythonの補完をEmacsでシンプルに最小労力で手早く使えるようにする – 牌語備忘録 – pygoの通りなんですが、手っ取り早くEmacsでPythonのコード補完を実現できた。ちなみにpython-modeでもac-pythonは問題なく動いてる。これ設定したらコード書くスピードが今までの1.5倍ぐらい速くなったっす!
例えばお仕事で使っているサーバで
などと複数の秘密鍵を持ちたい場合がよくある。メインは1.の仕事用のサーバだとすると
となることが多いのではないかと思う。
この場合
ssh -i ~/.ssh/id_rsa-private yourhost
などと毎回秘密鍵のファイルを指定するのはつらいので、~/.ssh/config に
Host yourhost IdentityFile ~/.ssh/id_rsa-private
と書いておくと、
ssh yourhostだけでいけるので便利だと思った次第です。
つい最近tomahawkのドキュメントをGithub WikiからSphinxに移行したのでそのメモ。SphinxにはHTMLを生成する以外にもman pageを生成する機能があって
$ make man
を実行すると _build/man/ 配下に mycommand.1 みたいな感じでman pageが生成される。
でで、tomahawkの場合は tomahawk, tomahawk-rsync という2つの実行ファイルがあるので、この2つのman pageを生成したくて、tomahawk.rst, tomahawk-rsync.rst ファイルを作ってみたけど、デフォルトでは tomahawk.1 に全部入りのman pageができるだけで「独立したrstファイルから個別のman page生成するのってどうやるんだろう?」となっていた。
結論としては、Sphinxのconf.pyに man_pages という設定があるので、これを下記のように man pageの数だけ用意してあげれば良かった。
authors = ('Kazuhiro Oinuma') man_pages = [ ('index', 'tomahawk-all', 'tomahawk manual', authors, 1), ('tomahawk', 'tomahawk', 'enables to execute a command to many hosts', authors, 1), ('tomahawk-rsync', 'tomahawk-rsync', 'enables to copy files to many hosts', authors, 1), ]
それぞれのタプルは順に
ということらしい。このように複数のman pageを生成するやり方はSphinxのドキュメントにも書いてなかったので、Sphinx自体のドキュメントのソースを見てみたらビンゴだった。
mkouheiさんにtomahawkのDebianパッケージを作ってもらっている時に「コマンドにはman pageが必要」といわれたので、どうせならHTMLもmanも生成できるSphinxに移行してみたというのが理由。最初はreStructuredTextのフォーマットを覚えるに苦労したけど、これさえ覚えれば色んなフォーマットに出力できるのでいい投資かなぁと思う。
あと、Read The Docsというサービスを使えば、Git/Mercurial/Bzr/SVNで管理しているファイルから自動的にSphinxでHTML生成して readthedocs.org から見れるようになるので非常に便利れす(ReadTheDocsについて詳しくはここ)。
というわけでソフトウェアのドキュメントにはSphinxがおすすめです!
どうもこんにちは。北海道に旅行中でこの記事は札幌のホテルから書いている oinume です。MySQL Casual Advent Calendarも11日目になりました。「MySQL Casualが全然カジュアルじゃない!」という意見をよく耳にするので、今日はウルトラカジュアルなエントリーを書こうと思います。
MySQLを使って開発をしていると、本番と開発用サーバの見分けがつかずに、間違って本番で重いクエリを発行しちゃったりします。そういうオペミスを少しでも防ぐために「本番環境ではmysqlコマンドのプロンプトの色を変える」という技を紹介したいと思います。
紹介といってもやり方は非常に簡単で、下記のように rlwrap というコマンドを使って mysql コマンドを実行します。
rlwrap -a -pRED mysql -uroot
するとあら不思議!MySQLのプロンプトが下記のように赤くなりました!
というわけで、rlwrapがインストールされているマシンであれば、下記のように .bashrc 的なファイルに書いておくことでmysqlのプロンプトを常に赤くすることができてオペミスも減らせますね!
if [ -x /usr/bin/rlwrap ]; then alias mysql='/usr/bin/rlwrap -a -pRED mysql' fi
ちなみに rlwrap は Debian(Ubuntu) であれば apt でインストールできます。
sudo aptitude install rlwrap
CentOSの場合はepelリポジトリが追加されていれば yum でインストールできます。
sudo yum install rlwrap
このウルトラカジュアルっぷりいかがでしたでしょうか。Advent Calendar 12日目は ikasam_a さんです。よろしくお願いします!
inspectを使えば簡単にできる。
class MyClass(object): pass def func(): pass
な感じのmymodule.py があるとして
#!/usr/bin/env python import inspect import mymodule for name, member in inspect.getmembers(mymodule): if inspect.isclass(member): print "%s is class." % name
みたいにやれば mymodule からクラスだけ抜き出せる。
inspectというモジュールはリンク先のマニュアルをざっと見てもらえばわかるように、モジュールやクラスや関数のメタ情報を色々取れるので超絶便利である。これは本当にすごい。
Pythonで今一番熱そうなWSGIコンテナのuWSGIというものをインストールしてみたんだけど、virtualenvと組み合わせた時にちょっとはまったのでメモ。
$ workon flask
$ pip install uwsgiでいける。
まずは本格的なアプリを起動する前にQuickstartに書いてあるhello world的なものを試しみる。
# /var/www/hello.py def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return "Hello World"
$ uwsgi --http :9090 --wsgi-file /var/www/hello.py
これでブラウザから http://<host>:9090/ にアクセスして”Hello World”が表示されればうまくいっている。
次はFlaskアプリで試してみる。
$ uwsgi --http :9090 -H /usr/local/virtualenvs/flask --python-path /var/www/wiki-converter -w wiki_converter:app
で起動できる。
しているのがミソ。-Hがない場合 flask が見つからなくて
ImportError: No module named flask
unable to load app mountpoint=
というエラーが出てuwsgiがうまく起動できないので注意!
なお、uWSGIはnginxと組み合わせてよく使われるらしい。nginxとの組み合わせについてはCentOSでnginx + uwsgi + Djangoを試してみた « taichino.com:が詳しい。
Shellで
$ pydoc -gってやったら↓のようなダイアログが出てきて
“open browser” クリックしたら、ブラウザで標準モジュールやインストールされているモジュールのドキュメントが読めましたとさ。Pythonすげー。
著者/訳者:Alex Martelli Anna Martelli Ravenscroft David Ascher
出版社:オライリー・ジャパン( 2007-06-26 )
大型本 ( 652 ページ )
コメント