Archive for the ‘ Python ’ Category

[Python]Pythonインタラクティブシェルで履歴補完をするためのreadlineをインストール

sudo easy_install readline

以下のエラーメッセージが表示された
/usr/bin/ld: cannot find -lncurses

ということで、ライブラリをインストールする

sudo apt-get install libncurses5-dev

再度、readlineのインストールを行う

sudo easy_install readline

こでバッチリ、インストールすることが出来た。

Popularity: 8% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark

[Python]MySQLdbをインストール

なんてことないんだけど、パッケージ名がわからなくなりそうなので…

sudo easy_install MySQL-python

Popularity: 7% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark

[GAE]HOMEディレクトリにGoogle App Engineの開発環境を構築してみた

HOMEディレクトリにGoogle App Engineの開発環境を構築してみた

インストールするのは以下。

python2.5
easy_install
mercurial

python2.5のインストール

$ wget http://www.python.org/ftp/python/2.5.5/Python-2.5.5.tgz
$ tar xfz Python-2.5.5.tgz
$ cd Python-2.5.5
$ ./configure --pfix=$HOME
$ make
$ make install
$ echo $?

pathの設定

$ vim ~/.bashrc
$ PATH=$HOME/bin:$PATH
$ source ~/.bashrc

easy_installのインストール

$ wget http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c11-py2.5.egg#md5=64c94f3bf7a72a13ec83e0b24f2749b2
$ sh setuptools-0.6c11-py2.5.egg --pfix=$HOME

mercurialのインストール

$ wget "http://mercurial.selenic.com/release/mercurial-1.4.3.tar.gz"
$ tar xvfz mercurial-1.4.3.tar.gz
$ cd mercurial-1.4.3
$ make install-home

Popularity: 20% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark

[Trac]TracMercurialとTracでリポジトリブラウザが文字化けしたら…

Trac(mod_wsgi)とTracMercurialを使って、環境を作ったのだがリポジトリブラウザが文字化けしてしまった。
その時の対象法を・・・。

今回、自分の環境ではApacheとmod_wsgiを使って動かしている。

で、.wsgiファイルに以下を追加してあげることにより文字化けが治る。

os.environ['HGENCODING'] = "UTF-8"

.wsig全体では以下な感じになっている。(参考までに)

import site
import os

site.addsitedir('/usr/local/lib/python2.6/site-packages')

os.environ['PYTHON_EGG_CACHE'] = '/home/hogehoge/src/trac/eggs'
os.environ['HGENCODING'] = "UTF-8"

import trac.web.main
def application(environ, start_response):
  environ['trac.env_path'] = '/home/hogehoge/src/trac'
  return trac.web.main.dispatch_request(environ, start_response)

Popularity: 14% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark

[Django]関数ごとmemcacheに入れるための便利関数

こんな感じ。

def cache_func(key, timeout, func, *args, **kwargs):
    # get the result from memcache
    result = memcache.get(key)
    if result:
        return result
    # get the result from orginal function
    result = func(*args, **kwargs)
    # set the result to memcache
    memcache.set(key, result, timeout)
    return result

使い方はこんな感じ。

def get_hogehoge(id, count):
    return "%(id)s_%(count)s"
cache_timelines = lambda id, count: cache_func('cachekey_%(id)s_%(count)s' % dict(id=id, count=count), 60 * 10, get_hogehoge, id, count)

Popularity: 9% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark

[GAE]urlfetchをshellから使ってみる

普通にやろうとすると以下のメッセージが表示されてしまって出来ない。
「AssertionError: No api proxy found for service “urlfetch”」

ということで、どうすればいいかのメモ。

from google.appengine.api import apiproxy_stub_map, urlfetch_stub
apiproxy_stub_map.apiproxy = apiproxy_stub_map.APIProxyStubMap()
apiproxy_stub_map.apiproxy.RegisterStub('urlfetch', urlfetch_stub.URLFetchServiceStub()) 

from google.appengine.api import urlfetch
urlfetch.fetch('http://www.google.co.jp').status_code

Popularity: 5% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark

[Django]管理画面で日付フィールドの「今日」カレンダーを非表示にする

なぜか、Djangoの管理画面で日付フィールドの横にある「今日」リンクや、
カレンダーを非表示にしたいという要望があって対応したのでメモ。

class UserAdmin(admin.ModelAdmin):

    formfield_overrides = {
        models.DateField: {'widget': DateInput},
    }

    class Meta:
        model = User

Popularity: 3% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark

[Django]Ubuntu 9.10にDjangoの開発環境を作った

ParallesにUbuntu9.10を入れてみた。
ついでに、djangoで開発できる環境を整えたのでそれのメモを残して置く。

mysqlのインストール

sudo apt-get install mysql-client-5.1 mysql-server-5.1 mysql-server-core-5.1
mysql -u root
mysql -u root -p[password]

python-mysqldbのインストール

apt-cache search python | grep mysql
sudo apt-get install python-mysqldb

svnのインストール

sudo apt-get install subversion

paco(パッケージ管理)のインストール

sudo apt-get install libgtkmm-2.4-dev # 必要なlib
mkdir -p work/src/
cd ~/work/src
svn checkout http://paco.svn.sourceforge.net/svnroot/paco/trunk paco
cd paco/
./configure
make
sudo make install

djangoのインストール

sudo apt-get install python-setuptools
mkdir ~/work/django1.1.1
cd ~/work/django1.1.1/
sudo paco -D pip install django

mercurialのインストール

sudo apt-get install mercurial

Popularity: 14% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark

[Django]fixturesを使う

忘れないようにメモ。

以下のコマンドで、DBに入っている値をFixturesとして出力。

python manage.py dumpdata --settings=settings_hoge --format=json --indent=4 --exclude=auth --exclude=contenttypes > fixtures.json

以下のコマンドで、DBに値をロード。

python manage.py loaddata --settings=settings_hoge fixtures.json

Popularity: 5% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark

PythonでClassの比較

気になったのでやってみたやつのメモ。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

class User:

    def __init__(self, id, name):
        self.id = id
        self.name = name

    def __eq__(self, other):
        return self.id == other.id and self.name == other.name

if __name__ == '__main__':

    userA = User(1, 'hoge')
    userB = User(1, 'hoge')
    userC = User(2, 'hoge')
    userD = userA

    print userA == userB
    print userA == userC
    print userD == userA

Popularity: 4% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark
Page 1 of 3123