タグ

pythonとPythonに関するAltNightのブックマーク (87)

  • インスタンスに動的にメソッドを追加する - PYTHONIC BOOM BOOM HEAD

    追記: 記事を公開してからおんなじような記事あったりするかなと思ってググったら2年前にIanさんがほとんど同じ内容書いてた。 Pythonでメソッドをクラスまたはインスタンスに動的に追加する - Ian Lewis しかも僕その記事はてブしてたよ… Interactive Shell で色々試してる時なんかにインスタンスにメソッドを追加したくなる時がある。 >>> class Person(object): ... def __init__(self, name): ... self._name = name ... >>> alice = Person("Alice") >>> bob = Person("Bob") こんなクラスがあって、幾つかインスタンスを作っているとする。で、self._nameを取得するメソッドが欲しくなったとしよう。 >>> def get_name(self)

    インスタンスに動的にメソッドを追加する - PYTHONIC BOOM BOOM HEAD
  • Pythonでファンシーなデバッガを手軽に利用する方法 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 以前pudbというCUIベースのソースコードデバッガを紹介した。コンソール環境で利用できてなかなかファンシーなのだが,デバッガをいちいち立ち上げる必要があるので少々面倒だ。今回はより手軽にCUIベースのデバッガを起動する方法を紹介する。 方法は簡単。debugというパッケージを「pip debug」などでインストール,デバッグを開始したい場所に「import debug」とするだけで,プログラムのその位置でシンタックスカラーリングの効いたファンシーなデバッガが立ち上がる。 「n」を押して実行を進めたり,print文を使って実行中の変数の中身を表示したりできる。実行中のプログラムも表示し

    AltNight
    AltNight 2012/09/07
    pdb、pudbのかわりにいい感じのデバッガ!ちょっとつかったけどよさそうだ
  • 「Pythonで記号なしプログラミング」(未完) - 西尾泰和のはてなダイアリー

    竹迫さんがPerlで記号なしプログラミングの偉業を達成したのは7年前だった。(see ppencode) そしてoxyさんがRubyで記号のみプログラミングを達成した(rrencode) 7年前にも「Pythonで記号なしプログラミングできないの?」と言われた。当時若かった(まだ四捨五入したら二十歳だった)僕は「いやー、無理ですよ」とバッサリ切り捨てていた。 あれから7年経って、Pythonの文法はさほど変わっていないけど、僕の考え方が変わった。ユーザの要望に「それは無理」なんて言っちゃうのは下策だ。100%達成することが不可能な問題でも、8割解くのは可能だったりする。「100%やるのはこれこれの理由で無理だが、この条件を緩めれば可能」と提案する方が上策だ。後者では8割分の価値を作り出すことができているが、前者では理由がいかに正しかろうが何も作り出すことができていない。 さて、なにを緩める

    「Pythonで記号なしプログラミング」(未完) - 西尾泰和のはてなダイアリー
    AltNight
    AltNight 2012/09/06
    hoe-
  • celeryのPeriodic Taskについてのメモ - PYTHONIC BOOM BOOM HEAD

    必要になったので自分用にメモ。今必要な部分だけざっくりと把握しただけなので間違ったこと書いてたらごめんなさい。 Periodic Taskとは Periodic Tasks — Celery 3.0.9 documentation celeryにはPeriodic Taskというタスクをある一定時間ごとに実行してくれる仕組みがある。そのスケジュールを管理してくれるのがcelery beat。 celerybeat: タスクのスケジュールを管理 celeryd: タスクの実行 periodic_taskデコレータ 定期実行タスクをスケジューラーに登録するためにdjangoのsettings.pyにCELERYBEAT_SCHEDULEを設定する必要がある。が、これとは別の方法としてperiodic_taskデコレータを使用する方法があるのでそちらを使うことにする。 from celery.t

    celeryのPeriodic Taskについてのメモ - PYTHONIC BOOM BOOM HEAD
    AltNight
    AltNight 2012/09/06
    celeryむずかしいなぁ
  • Python3.3のvenvを試す - YAMAGUCHI::weblog

    はじめに こんにちは、Python界の情弱です。最近は「勉強会」という名を借りたリクルーティングが行われているようですが、賢良なる読者の皆様におかれましては、主催者の主旨、講師の方々のブログおよび公開レポジトリ等をご確認の上ご参加されていることでしょう。 それはさておき、Python3.3の公式リリースの足音が聞こえて参りました。このマイナーバージョンアップは実は非常に大きく、2年の長きにわたって実施されていたLanguage Moratorium*1を終え、ついにPythonが3系として完全に後方互換性を排除し始めるバージョンとなるわけです。*2 そんな中私が個人的に一押し注目中のvenvモジュールについて調べてみました。 venv a.k.a pyvenv PEP 405 -- Python Virtual Environments 26.13. venv — Creation of

    Python3.3のvenvを試す - YAMAGUCHI::weblog
  • WindowsMeでDjangoを動かしてみる - 偏った言語信者の垂れ流し

    某勉強会への参加のためにノートPCを用意する必要があったんですが、ちょっと古いノートPCで遊んでみようと思って押し入れから引っ張りだして来ました。 昔実家で使われていたCOMPAQのPresario1400です。購入したのは11年ほど前です。 このPCは当時でもスペックはあまり高いほうじゃなかったかな。CPUがCeleronの600MHz、メモリーが64MB(グラフィックスで8MB使われるため実質56MB)でした。 WindowsXPはメモリーが足りないためまともに動作しません(SP2の場合、OSだけで100MBほど使われる)。そのためWindowsMeのまま使います。 Pythonのインストール Djangoを動かすためにはまずPythonのインストールが必要です。ちなみにWindowsMeがサポートされるPythonのバージョンは、2.5系までです。2.6以上は動作しません。 リカバリ

    WindowsMeでDjangoを動かしてみる - 偏った言語信者の垂れ流し
    AltNight
    AltNight 2012/09/01
    わらった
  • fabfileの構造化 - logiqboard

    fabfile.pyって、task数個までならまあ1ファイルでいいんですが、それ以上増えてくるとスクリプト自体がカオスになって収集がつかなくなります。 更に似たような、けど微妙に違うtaskをいっぱい定義したりすると名前まで酷くなってきます。こんなかんじに。 @roles('lb') def lbserver_deploy(): """ロードバランサーにデプロイする""" ... @roles('app') def appserver_deploy(): """アプリケーションサーバーにデプロイする""" ... @roles('batch') def batchserver_deploy(): """バッチサーバーにデプロイする""" ... こんなファイルメンテする気が起こらないので、なんとか綺麗にしたいと思って調べたところ、fabric1.1から付いたクラスベースのtaskというのを

    fabfileの構造化 - logiqboard
    AltNight
    AltNight 2012/09/01
    fabfileのモジュールのもやもやがやっととけたかんじ
  • fabricとbuildoutで環境構築 第1章 fabricで再利用可能なレシピを書こう - 今川館

    Python, fabric, buildout | 10:03わたしはインフラとかOSのインストールがとても苦手で、仕事で新しい案件にアサインされる度に仮想環境を作って諸々インストールするのが面倒で嫌いです。例えばnginxのインストール・セットアップをしようと思ったとき、やり方をぐぐって手順書としてメモします。しかし、手順書を見ながらコマンドをコピペすること自体やめてしまいたいと思う事が多いです。環境構築手順をレシピとして作っておくnginxのインストールならば nginx_install.sh 、セットアップは nginx_setup.sh みたいに、環境構築手順をシェルに書いておいて使い回し可能にできたら楽なんじゃないかと思います。こういうものをレシピを呼ぶらしいです。Pythonで開発するのだから、レシピPythonで書ければ楽でしょう。具体的なイメージとしては、レシピを書いた

    AltNight
    AltNight 2012/09/01
    buildoutつかうのかー
  • fabricとbuildoutで環境構築 第2章 fabricタスクとして任意のPythonの関数を実行する方法 - 今川館

    Python, fabric, buildout | 10:46fabfileから解放されたいfabricのfabというコマンドはカレントディレクトリにあるfabfile.pyを見つけてその中に定義されている関数を実行します。一応、 -f というオプションで対象のファイルを指定することも可能です(以下例)。 $ fab -f /home/oyakata/maro.py useradd:name=tiger,password=scott しかし、ファイルを指定して実行する点は変わりません。これを、任意のPythonの関数を実行するよう変えることがこの記事の話の目的です。fabricにちゃんと仕組みが用意されている!fabric.api.executeという関数を使えば任意のPythonの関数をfabricタスクとして実行できます。ドキュメントに書いてあります。Execution model

  • Elastic BeanstalkでPythonのアプリケーションを動かしてみる - 偏った言語信者の垂れ流し

    Amazon Web Service(AWS)のElastic BeanstalkでPythonがサポートされました。 Announcing AWS Elastic Beanstalk support for Python, and seamless database integration | AWS Blog というわけで、試してみる。 開発環境の準備 手元の環境はVMware上のUbuntu12.04。aptでPython2.7とRuby1.8とGitはインストール済み。 ElasticBeanstalkを使うために、コマンドラインツールをインストールする。 以下のページからzipアーカイブをダウンロード。 AWS Elastic Beanstalk Command Line Interface (Newer Version Available) : Sample Code & Li

    Elastic BeanstalkでPythonのアプリケーションを動かしてみる - 偏った言語信者の垂れ流し
  • buildout で Pyramid のテストコマンドを作る - 祢占堂

    前回までのあらすじ buildout を使って Pyramid の環境を構築したねじだが、朝方剥いた桃がすごい速さで変色していくのにびっくりした。 あわせて読みたい:buildout を使って Pyramid な環境を構築してみた Pyramid でのテストの実行 チュートリアルにあるように、setup.py test とか nose でテストができる。 これを buildout 使った場合はどうやるのかと思ったら、zc.buildout.eggs に nose とか追加するのじゃなくて、pbp.recipe.noserunner というレシピがあるらしい。 というのに @aodag 先生の公開してる papyrus の buildout.cfg を見て気づきました。なのでパクります。 bin/test コマンドの作成 buildout.cfg に以下のセクションを追加します。parts

    buildout で Pyramid のテストコマンドを作る - 祢占堂
  • sftpserverモジュールをforkしていじった件 - PYTHONIC BOOM BOOM HEAD

    諸事情によりテスト用のsftpサーバーが必要になったのでsftpserverなるモジュールを見つけてきた。しかしこいつシングルスレッドなので、やりたいことのためにはmultiprocessingと併用する必要があったわけなんだけど、そうするとなんかエラーが出る。 raise AssertionError("PID check failed. RNG must be re-initialized after fork(). Hint: Try Random.atfork()") で調べてみたところそのものズバリのエラーで困ってる人がいた。 python - multiprocess module with paramiko - Stack Overflow どうやらparamikoのバグらしい。paramikoのforkで、pure python実装なsshモジュールだとこの問題は解決済みら

    sftpserverモジュールをforkしていじった件 - PYTHONIC BOOM BOOM HEAD
  • python.jpの明日はどっちだ - atsuoishimoto's diary

    最近「PYJUGって何なの?」「網元衆って何なの?」「何してるの?」「誰なの?」 って話を聞く機会が多いように思えます。 Pyjug-discussへの投稿も凄く減っていますし また網元衆が再編成されて5年も経っています。 外から見ていると、そろそろ運営が実態に合っていないようにも見えます。 なので、網元衆に参加をしてその辺をもっと透明化したいと考えました。 そこで http://www.python.jp/Zope/pyjug/webmasters にある通りにメールをしたのですが 権限がなくて送信出来ずに困っています。 どうしたら良いのか教えて頂けるとありがたいです。 よろしくお願いします。 http://www.python.jp/pipermail/pyjug-discuss/2012-July/000232.html このメールに一日以上応答すらないというのは、もうpython.

    AltNight
    AltNight 2012/07/31
    アツいぁっぉさん
  • ある nakagami の日記

    自分は、日IBM と NHK の訴訟になったことを、単なる痛々しい事例と捉えていたのだが、 世の中にはこれを、アクセンチュアと日IBM の汎用機(COBOL)の移行失敗事例と捉えている人がいるようだ。 https://xtech.nikkei.com/atcl/nxt/column/18/01157/032600131/ アクセンチュアの支援を受けて要件定義ってことなので、 …続きを読む

    ある nakagami の日記
  • PPAから古いPythonをインストールする - 偏った言語信者の垂れ流し

    toxで使うために、古いPythonをインストールしたかったねん。 Ubuntu12.04。 このバージョンだとUbuntuの標準のaptリポジトリからはPython2.5などの古いPythonがなくなっている。 自分でビルドしてもいいのだけどPPAからインストールすると楽だった。 $ sudo aptitude install python-software-properties $ sudo add-apt-repository ppa:fkrull/deadsnakes $ sudo aptitude update $ sudo aptitude install python2.5-dev python2.6-devこの話はPythonプロフェッショナルプログラミングにも書かれてる。 Pythonプロフェッショナルプログラミング 作者:ビープラウド出版社/メーカー: 秀和システム発売

    PPAから古いPythonをインストールする - 偏った言語信者の垂れ流し
  • ctypes入門してみた。 - podhmoの日記

    ctypesって? pythonのFFI用のモジュールらしい。 pythonの枠からはみ出た関数をpythonから呼び出すための接触面といった感じのもの. ドキュメントを見て、動くコードを書いてみた。 http://docs.python.org/library/ctypes.html やってみたのは以下のこと floatの配列を作ってこれをqsort python側で構造体を作成してこれをqsort qsortは関数ポインタを使っているし、だいたいの機能を網羅していると思う。((実際には、bitfieldの利用やunionなど使っていない機能はあるけれど、まぁ必要十分だと思う) 実際のコード 最初、qsortに渡す関数の戻り値をintにしていなくてハマったのはないしょ。 floatの配列をqsort python側で作成した構造体(Point)をqsort ldconfigとかpkgco

    ctypes入門してみた。 - podhmoの日記
    AltNight
    AltNight 2012/07/21
    なるほど、わからん
  • 2012.05版 Python開発のお気に入り構成(ポロリもあるよ) - YAMAGUCHI::weblog

    はじめに こんにちは、Python界の情弱です。最近は色々とPythonの開発環境も変化してきていて、ようやくPython2.xとPython3.xを行き来しながら開発する体制が整ってきたという印象を受けています。ここしばらくは色々と試していたのですが、ようやく鉄板っぽい方法にたどり着いたのでメモしておきます。 なお、後半はPythonに限らない内容なので、他のLLを使っていても使えそうかなと思っています。この環境を設定すると何ができるのかというと、以下のことすべてが、無料で、自鯖を立てることなく行えます。 開発環境の整理(virtualenv) ローカルでの複数環境のテスト容易化(tox+pytest) CIによるテスト(Travis-CI) ドキュメントの自動ビルドおよびドキュメントの公開(ReadTheDocs) 概要 とりあえず全体像を先に共有しておきます。ちょっとでかいですがご了

    2012.05版 Python開発のお気に入り構成(ポロリもあるよ) - YAMAGUCHI::weblog
    AltNight
    AltNight 2012/07/12
    Travis-CI初めて知った。こういう情報をブラッシュアップして公開してくれるのすごい助かる
  • gevent ベースのサービス指向サーバーを作る

    非同期サービスフレームワーク ginkgo (docs) というものが今年の PyCon US で発表された。サービスを作るには、デーモン化なり、PIDファイルの作成なり、シグナルの処理なり、プログラムでやらないといけないことが多い。 Twisted フレームワークだと、サービスまわりの機能がありますが、 gevent ベースのサービスを作るには結構大変なので、 ginkgo というものが作られた。 ginkgo は Service クラスを提供して、そのクラスを継承して、サービスのことを実装するだけ。 簡単なウェブサービス まずは、WSGIベースの Hello World from ginkgo import Service from ginkgo.async.gevent import WSGIServer class HelloWorldWebServer(Service): def

  • MacでSkype4PyのAttachでSegmentation faultが発生(Pythonを32bitで動かす) - F13

  • pythonbrew とか pythonz とか - ナントカカントカ

    pythonbrew が半ディスコン状態になったので逃れ先がないかなーと少し調べていたんですが、あんまりしっくりくる感じのものがないです。pythonbrew を fork したものだと、とりあえず名前だけ変えて pvm と名付けられたものと、pythonz という pythonbrew から機能をいくつか削ぎ落したものがあります。pvm のほうは正直どうしたいんだこれ感が漂ってる。pythonz のほうは pythobrew のようなものだろうと思って使ってみたら思想が結構違ってて、そもそも pythonz 自体は何もせずにただ python (pypy, jython) をインストールするだけで、pythonbrew のような use とか switch とかは提供されてなく、ほんとにインストールするだけ。そこにパスが通るわけでもなく、サイトに書かれているように、あとは勝手にその py

    AltNight
    AltNight 2012/05/01
    Pythonのパッケージ管理どうしよう問題。個人的には結局virtualenvで指定するからPythonzが気楽なきがするけど、さて。