Paver は Python でコマンドラインツールを手軽に作るためのライブラリです。 Python の標準ライブラリの argparse などを使ってもある程度コマンドラインツールを簡単に作ることができますが、 Paver を使うと特にサブコマンドを持ったスクリプトを作るのが圧倒的に楽になります。 Paver 本家のドキュメントでは Python のパッケージングを自動化することに主眼をおいて解説されているので、タスク定義&実行ツールとして解説してみたいと思います。 セットアップ
![Paver を使ったスクリプティング - コマンド定義編 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/247b4b66ac832710258efa50ca8c58e20b60aeb1/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9UGF2ZXIlMjAlRTMlODIlOTIlRTQlQkQlQkYlRTMlODElQTMlRTMlODElOUYlRTMlODIlQjklRTMlODIlQUYlRTMlODMlQUElRTMlODMlOTclRTMlODMlODYlRTMlODIlQTMlRTMlODMlQjMlRTMlODIlQjAlMjAtJTIwJUUzJTgyJUIzJUUzJTgzJTlFJUUzJTgzJUIzJUUzJTgzJTg5JUU1JUFFJTlBJUU3JUJFJUE5JUU3JUI3JUE4JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmcz1kOGMzYWY4OGRiMDA3M2Q2NTY4ZDdkMDU4MDczMGYyOA%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBtZXRoYW5lJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1lY2ZlNjYzN2FhMDBlNGVlNzYxMjk5ZmIyNTYyN2I5Yg%26blend-x%3D142%26blend-y%3D436%26blend-mode%3Dnormal%26txt64%3DaW4gS0xhYiDmoKrlvI_kvJrnpL4%26txt-width%3D770%26txt-clip%3Dend%252Cellipsis%26txt-color%3D%2523212121%26txt-font%3DHiragino%2520Sans%2520W6%26txt-size%3D36%26txt-x%3D156%26txt-y%3D536%26s%3D6c82e409863e17dbb88a6c4f9cc1689e)
背景 Google APIの利用について、GoogleのユーザーIDとパスワードでのアクセスが2015年5月に禁止された。現在はOAuth2.0を利用してアクセスしなければならない。PythonからOAuth2.0での認証に関して、意外と情報が少なく手間取ったのでやり方を残しておく。 本記事はスプレッドシートに関してのものだが、gdataライブラリを利用する他のAPIにも同じように認証が可能なのではないかと思う(未確認)。 環境 python 2.7.5 MacOS X 10.9.5 OAuth2.0での認証方法 OAuth2.0での認証のためには、いくつか準備しなければいけないことがある。 順番に手順を残しておく。 1. Drive APIの有効化 スプレッドシートは、Google Apps APIのDrive APIを利用して操作することになるので、以下の操作で必要なAPIを有効にする
cProfileもいいんだが、とりあえずメソッドでの実行時間測りたいみたいな話になりーの。 で、むかーしJavaでDIでインターセプタ利用してDaoつかまえて始まりと終わりの時刻から実行時間を調べる的なものをやってたなーなんて思い出しーの。 んでんで、ググってみると、 Sounds to me like a classic case for python function decorators. Flask already has these defined as View Decorators The login required decorator is one such decorator. http://stackoverflow.com/questions/23098613/how-to-add-a-interceptor-on-flask-like-in-struts2 なんて
https://www.facebook.com/shen.l.liang/posts/10204224244113198 移動平均線ベースのテクニカルに基づいたトレードルールです。 一緒にお金持ちになりたい人は、積極的にプルリク送りましょう。 from pyalgotrade import strategy from pyalgotrade import plotter from pyalgotrade.stratanalyzer import sharpe from pyalgotrade.barfeed import yahoofeed from pyalgotrade.barfeed import csvfeed from pyalgotrade.barfeed import Frequency from pyalgotrade.technical import ma from p
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー Python 3を「使わない」理由というのが実はいくつかある。 たとえば対応しているフレームワークとかモジュールが少ないとか,そもそも2との互換性が崩れてるとか。対応モジュールやフレームワークはかなり増えてきたし,Python 3の情報もそこそこ出そろってきた。3.0がリリースされて4年弱経ち,この2点は大きく改善され,今ではあまり気にする必要はなくなっていると思う。 3を使わない理由が実はもう一つ「あった」。そしてこれは,個人的に最も気になっていたことなんだけど,Python 3は,2に比べてメモリ消費量が多くなっている。一番大きな原因は,str型(文字列型)がユニコードベースになっ
Live Nation says its Ticketmaster subsidiary was hacked. A hacker claims to be selling 560 million customer records. An autonomous pod. A solid-state battery-powered sports car. An electric pickup truck. A convertible grand tourer EV with up to 600 miles of range. A “fully connected mobility device” for young urban innovators to be built by Foxconn and priced under $30,000. The next Popemobile. Ov
大量のリクエストを捌くWebサイトを構築するには、さまざまなノウハウがあります。例えばオライリーの書籍『ハイパフォーマンスWebサイト』では、クライアントに配信するコンテンツを最適化することでパフォーマンスの向上を図っています。今回は、Pythonを使って月間10億を超える(!)リクエストを捌いている、株式会社クロスリスティングの方に、そのノウハウの一部を寄稿していただきました。 また、本記事の内容はPython Hack-a-thon 2010.07でのプレゼンテーションを元にしています 自己紹介 現在、私はクロスリスティングという会社で、広告配信システムとか、その周辺の新規商品関連の研究開発をやっています。メインのプログラミング言語はPythonです。自社でのシステム開発は基本的に全てPythonを使っています。自分は研究開発的なポジションですが、技術チームが開発しているプロダクション
Pinterestの急成長を支えてきたアーキテクチャとは? Pythonで開発しAmazonクラウドで運用 急速に人気が急上昇するWebサービスでは、どのようにスケールするアーキテクチャを構築し運用していくのかはサービスの成否を分けるほど重要です。Pinterestのように急成長してきたサービスのソフトウェア構成やリソース構成はどうなっているのでしょうか、Web上でいくつか情報が公開されているのでまとめてみました。 Pythonで開発し、Amazonクラウドで運用 1年ほど前なので少し古い情報ではあるのですが、Q&AサイトのQuoraにPinterestのco-founder Paul Sciarra氏が書き込んだソフトウェア構成の説明があります。 PinterestはPythonで開発されており、MemcachedやNginxなど高速なレスポンスに配慮した構成になっている様子がうかがえま
pythonbrewによるフレキシブルなPython環境の構築 Vimの設定とかはあまり関係ないですが最強を詠うために最強のPython環境が必要なので構築します。最強の環境とは インストールされているPythonのバージョンが違うことによって不可解なバグが発生しない インストールされているライブラリのバージョンが違うことに不可(ry インストールされているライブラリ同士が干渉して不可解な(ry だと思っています。これらを解決するために pythonbrew という素晴らしいソフトを利用します。 ただこのソフトはシェルが前提となっているのでWindowsをお使いの方は代わりに virtualenv をインストールして先に進んでください。 Pythonには大きく分けて2.x系と3.x系の大きなバージョンがあり、この二つは相容れないものとなっています。 2.x系はずっと使われてきたもので外部ラ
Pythonプロフェッショナルプログラミング 作者: ビープラウド出版社/メーカー: 秀和システム発売日: 2012/03/26メディア: 単行本購入: 6人 クリック: 765回この商品を含むブログ (27件) を見る清水川さんのブログですでに紹介されていますので、目次などはそちらで読んでください。 ちなみに自分も関わっていまして、第9章:Jenkinsで継続的インテグレーションを担当*1しました。 PythonでJenkinsを使いたいけど何をしたらいいかわかないという方なら、参考になる内容だと思います。 全体的にPythonのプログラミングテクニック的なものではなく、Pythonという言語と開発環境を使う上でビープラウドではどういうノウハウでやっているか、ということがメインになっています。 なので、エキスパートPythonプログラミングとはアプローチが違った本になっていると思います。
Python から Tesseract を利用するための python モジュールが以下のサイトにおいて公開されている。 python wrapper class for tesseract OCR (Linux & Mac & Cygwin) http://code.google.com/p/python-tesseract/ プログラム例はこんなに短い! # -*- coding: utf-8 -*- #from __future__ import print_function import tesseract api = tesseract.TessBaseAPI() api.SetOutputName("outputName"); api.Init(".","eng",tesseract.OEM_DEFAULT) api.SetPageSegMode(tesseract.PSM_A
CentOS 5.6 も Python は 2.4 なの!— Hajime Nakagami (@hajime_nakagami) 2011, 4月 8 Twitter を眺めていると、こういった声をちらほら聞くのでその対策をまとめてみます。 背景 CentOS 5.x で標準インストールされている Python のバージョンは 2.4.3 です。現在の Python 2 の最新バージョンは 2.7.1 であり、Good night, Posterous でも 2.6 以上を使うことが良さそうだと伺えます。私も個人的なアプリケーションを書くときは、2.4 を見限って 2.6 以上で書いています。私が 2.6 以上で使うようになったものとしては、構文では標準で提供されるようになった with 文 や、クラスデコレータ などがあります。標準ライブラリでは、abc, io, json, mult
概要¶ FriendFeedでは、Pythonで書かれた、比較的シンプルで、ノンブロッキング実装のされたウェブサーバを使用しています。FriendFeedアプリケーションは、web.pyや、Googleのwebappに良く似たウェブのフレームワークを使用して書かれていますが、このノンブロッキングウェブサーバと周辺ツールを利用することによるアドバンテージを生かして、追加のツールや最適化が行われています。 Tornadoはこのウェブサーバと、私たちがFriendFeedで頻繁に使用しているツールのうちのいくつかを含んだ、オープンソースバージョンです。このフレームワークはノンブロッキングで、適切な速さを備えているということで、主流となっている、ほとんどのウェブサーバフレームワーク(特に、ほとんどのPythonのフレームワーク)とは異なっています。速さの理由としては、ノンブロッキングで、なおかつe
今回はPythonのtwistedで、HTML5のWebSocketを使って複数クライアントのマルチチャットのデモを実現する方法を自分のメモ代わりに書いておこうと思います。 前書き HTML5でwebSocketが導入されて、Safari5やらChromeやらで、利用可能になっています。しかしながら、対応サーバがたくさんあるわけでもないので、静観しておりました(本業がWeb関係ではないもので)。しかし、とりあえず、以下を読み、 @IT 第1回 node.jsの衝撃とwebSocketが拓く未来 そんでもって、以下を読みました。 naoyaのはてなダイアリー:Mojolicious::Lite で webSocket を使ったチャットを作る で、 node.js を眺めてみて、おぉ。。。なるほど。。。でもさ、なんか、このイベント処理モデルどっかで見たことが……。この既視感に、とても興味を覚え
生まれ変わった「Days of Liris」。プログラミングのこと、Pythonのこと、気になったソフトウェアのこと、身の回りのこと、いろんなこと。など 数日前にpypiには登録していたのですが、もうちょっと機能を追加してPython用のWebSocketのクライアントを作りました。githubにいます。pypiはこっち。pip install websocket-clientでインストールできます。プロトコルが変わるとかいろいろありそうですが、まあ、WebSocketはいろいろ変遷してきたので、今更驚かされません。 作った理由は、うーん、何でしょう?何となく書いてみました、という感じです。WebSocketのサーバのテストとか、Pythonのアプリで接続を維持したまま、Webサーバとお話するとか・・・。この前作った、WebSocketのデータを複数サーバでリレーさせるときの通信手段とか・
はじめに 以前、GAE/Python で HTTPリクエストを並列化 で HTTPリクエストの同時発行を試みましたが、制限だらけの GAE で出来るなら、普通のPCでも出来るはず! ということで、いくつかの方法を試してみました。 GAE では google.appengine.api.urlfetch パッケージの非同期リクエストを使って簡単に実現出来ましたが、残念ながら urlfetch は GAE 専用なので同じ手は使えません。 ネットで検索すると gevent + urllib の組み合わせで出来ることが分かりましたが、同じ事をやっても面白くないので別の方法を探し PycURL に辿り着きました。 ということで、PycURL を使った方法から紹介し、その後で gevent と multiprocessing を使った方法も紹介します。 その1:PycURL を使う (PycURL の
先日、一生懸命、twistedを使ってWebSocketのデモを作ってみたわけですが「twistedなんて疲れるし、ナウでヤングな人はgeventだよ!」と今年の4月に、おおたにさんが書いているのを見つけてしまって、すっかりショック。 Twisted教は面白いのですが、疲れるのも事実です。…… jbkingより「ナウでヤングな若者はgeventだ(意訳)」と教えてもらって、 http://blog.liris.org/2010/04/gevent.html 時代は変わっていたみたいです。 なので、ナウでヤングなgeventで、さらにナウでヤングなWebSocketチャットをやってみました。 geventを使おう geventとは、コルーチンベースのネットワークライブラリ。 libeventライブラリのイベントループに対してハイレベルな同期APIを提供するために、Stackless Py
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く