読者です 読者をやめる 読者になる 読者になる

AWS / PHP / Python ちょいメモ

amazon web service , PHP, Python を使ったときのメモ。日本語でググってもわからなかった事を中心に。

python

mod_wsgi は pip でも提供ありなのかぁ

今回 Ubuntu 14.04 に PPA を使って Python 3.5.x を導入したところ、PPAには mod_wsgi がないことに気づき対応策を調べた。結果 pip で mod_wsgi が提供されてるといううれしい事実を発見し、無事に環境構築完了。※Ubuntu 14.04 だと オフィシャルのリポジ…

Django で view から Form オブジェクトに値を渡す : kwargs活用

args, kwargs が良くわかってなかったので苦労した話。python2.7.x と Django1.8.xでの確認です。 Formオブジェクトに渡すときには Formオブジェクトを生成するときに、GET パラメーターを渡したいと考えたが発端。あちこち参照して、一つに落ち着きました。…

forms.Model と forms.ModelForm の 違いって

Django でアプリ作ってて、ふと気になったのでまとめてみた。ざっくり、こんな感じ? 機能 Model & Form ModelForm validation 指示 Model & Form の両方で定義 Model で定義 フォーム上の項目 Form で定義 Model の定義から、ModelForm が自動決定 *対応表 …

Mac に pythonz 入れる時の OPTION 設定

以前書いた pythonz on Mac の手順が、通用しないようだったので修正方法を探ってみました。結果としては、pythonz で install する時にオプション設定をすることで解決しました。 MacOS ver 10.11.6 (OS X El Capitan) /usr/local/opt/openssl 1.0.2j (by h…

"/usr/bin/ld: cannot find -lxslt" が出て pip で lxml がインストール出来ない問題を解消

長年の問題が解決した。。。(発覚してから1年ほどで、解決に使った時間は4時間超)python パッケージは主に pip で管理しています。たまに苦労するのが gcc でコンパイルが必要なライブラリ。BeautifulSoupとセットで使いたい lxml もコンパイルが必要なラ…

Beautiful Soup 4.x では parser を明示指定しよう

python で スクレイピングなどを行うときに便利なのが BeautifulSoup (ここでは bs4 を扱っています) 。 parserを選択できる仕様になっていますが、 4.3.xまでは明示的に指定しなくても、適度に動いていました (どう動いてたかは、調べてない)。 こちら…

Mac に pythonz 入れる前にやっておくこと

direnv構築 していて遭遇した問題の原因がわかった。homebrew版のpythonが必要なのではなく、「homebrewでopensslを事前にインストールしておく必要がある」が正解だった。先に openssl を入れておかないと、pythonz で落としてきたpythonのBuild時に openss…

Pillow インストール前にやっておきたいこと

Sphinx で blockdiag + IPAフォントを使った時のTIPS。Ubuntu上で make html を行ったところ、次のエラーがでて図が出力できなかった。 ImportError: The _imagingft C module is not installed blockdiag_fontpath で、IPAフォントを指定したところエラーが…

homebrew direnv には homebrew python が必要?

(4/27 追記) homebew版 python が必要ではなく、direnv で使ってた pythonz で pythonを入れる前に homebew版 openssl が必要だったのが問題点でした。 Mac に pythonz 入れる前にやっておくこと - AWS / PHP / Python ちょいメモ - direnvをよく目にする…

Python & Django 読んでおきたいエントリー

ここ一年ほど、Python&Djangoをやってきて気になったエントリー集。けっこう好きになった気がする > Python。壮大なフレームワークなんだねと実感してきた > Django。読破したというより、読んでみたいがメインではあります。あと、Pythonメインの選定になっ…

AWS SDK for PHP 2 / 3 ドキュメント作成環境

AWS SDK for PHP 2 / 3のドキュメントって、どんなもので作られてるのかなぁと見てみた。 API AWS SDK for PHP 3.x AWS SDK for PHP | AWS SDK for PHP apigen API documentation generator for php 5.3+ NameSpaceなどにも対応したAPIドキュメント生成ツー…

mysqlclient / MySQL-python コンパイルエラー対処

Redhat w/SCL + pip で、Django/python の MySQLドライバ mysqlclient / MySQL-python がインストール出来なかった対処メモ。SCLの問題というか、Redhatのrpmパッケージの考え方の問題なのかな?# MySQL の mysqlclient と python と名前が被って若干混乱 my…

flake8 2.5.0 のエラー対処 on Ubuntu

Ubuntu に pip で flake8 を入れたら、上手く動かなかった。次の対処で上手く動作したのでメモ。 対処1 設定ファイル書くか -j0 オプション付けて並列処理をなくしたら動作。 vi ~/.config/flake8 [flake8] jobs = 1 $ cat /etc/os-release NAME="Ubuntu" VE…

Djangoアプリ全体で使う変数をコンテキストプロセッサで提供

組み込み Template とかをみてると {{ MEDIA }} とかが出てきますが、これを自前で作る方法。同じアプリを複数サイトで立ち上げる必要が出てきて、区別の為、アプリごとにユニークな名前を表示したい。ただ、それだけの用途に使いました。(Django 1.7 の ad…

dateutil で 曖昧な日付をパースする

python の dateutil ライブラリ。標準の datetime.strptime で日付を構文解析するよりも手軽にパースすることができます。2.x/3.x 両対応。今回、このようなフォーマットの日付をパースしたのですが、表記が曖昧なので、結果が揺れてしまいました。 In [1]: …

Python仮想環境ツール一覧 virtualenvwrapper, direnvとか

Pythonなど新しいバージョンがリリースされる言語は、プロジェクトや勉強に合わせたパッケージ用意したりと、1つの環境で作業しているとグチャグチャになります。 そこで1台のPC上に独立した個別環境を複数作れる、Python仮想環境を用意するツールを利用し…

self と cls とかが何か気になって調べてみた + @staticmethod

python 書いてると”ふと”気になる self と cls を調べメモ。なんで書くのかなぁという疑問が解消すると、結構気持ちよくかけるようになった気がします。書いてる人には、あたりまえ話ですいません。# 各種メソッドとかスコープについては、何も説明ないので…

Beautiful Soup 4.4.0 で extract() を使うとDOM treeが壊れる?

Python で Beautiful Soup 4.4.0 を使った時に遭遇した問題。stackoverflow でも取り上げられていて、取り敢えずは 4.3.2 に戻すことで対処しました。 python - Beautiful Soup Not able to get_text after using extract() - Stack Overflow 環境 Ubuntu 14…

urllib2.urlopen() で GET/POST を使い分け

Python の urllib2 で、ちょっとした仕様に気づいてなかったのでメモ。urlopen() の 第2引数 data を渡すと、必ずPOSTの挙動になるようです。確認環境: Mac OS X , Python 2.7.6 POST Data なにげに data を渡すと、POST methodが送られる Requestオブジェ…

python, Django でドキュメント関連ツール

他の人が書いたコードを読む時に、全体像の把握がしたくなります。そこで、ソースからドキュメントが作れるツールをいくつか探してみました。環境: Ubuntu 14.04 python 2.7.6 試用ツール: Doxygen django.contrib.admindocs クラス図とコールグラスなどを…

Django テンプレートで楽する技(初心者向け)

高機能はDjango、なかなか全貌が把握できてませんが、こりゃ楽だぁ〜と思った機能を3つ紹介。 数値に桁区切りのカンマを入れる方法 humanize というアプリが同梱されているので、これを使うことでテンプレートだけで対応が可能でした。 humanize は templat…

Django はじめた時に、便利と思ったサイト4つ

Django 使う時のTIPS集をいくつか紹介。どれも、便利だなぁと思うヒントが沢山あるので、おすすめ。Djangoチュートリアルが終わって、とりあえず1つ2つ作ってみたというタイミングだといいのではないかと。注意点として対象バージョンがマチマチなので、自…

Django の paginate に GET パラメーター渡し機能を追加

paginate/pagination は、 Django core として標準ではいっています。ただ他のパラメーターを、次のページに引き継ぎたい場合には、一手間必要なようです。StackOverFlow の 次の Question を参考に、思案してみました。 pagination - How to paginate Djang…

Django の Debug Toolbar カンタン導入

Debug Toolbar こんなに簡単に導入出来るのか!ということでメモ。最初から入れておかないと、時間がもったいないですね(;CakePHPでいうDebugKitに相当する機能です。手順的には、Djangoの方が一手間少ない、かな? カンタン導入手順 Debug Toolbar APP を…

Django で AdminDateWidget を使う手順

Django が標準で持ってる admin は、便利です。ここで使われている widget を、自分のWebAppに使ってみる手順を まとめました。複数のwidgetがありますが、カレンダーから日付を選択するAdminDateWidgetを導入してみます。 前提 Django 1.6.x 以降 (以前のバ…

settings.py を便利に使う 初心者向けTIPS 3選

Djangoは、設定ファイルが .py : Python コード で記述されています(昔触った MoinMoinWikiもそうだった気がする)。Python初めての時は、インデント間違いに気づかず動作しないなど苦労した苦い思い出がありますが、いやいや便利ですよね。設定ファイル中…

Django での static files の扱い方まとめ

Django 使って最初にツマヅイタのが、static files (静的ファイル) の扱い方。内蔵Webサーバーを便利に使ってる時と、ApacheなどでWSGIでサービス提供する時では、全然違うので困りました。違いがあるのは、開発時=速く・簡単に、本番=セキュリティ考慮 …

Django の ER図 出力 が 2ステップで出来た

Django では、Modelの定義を行う事でデータベースは定義は自動的に作成されます。Modelの定義をキチンと理解していれば ER図なくてもでしょうが、DBMSで操作をしちゃいたい時(僕の場合)等にER図があると便利だと思い探してみました。見つけてしまえば、た…

python & Django 環境構築手順

Ubuntu, CentOS 上に連続で環境構築をした時のメモ。Linux系は、ディストリビューションによって、結構ポリシーが違いますね(対象OSの新しさにもよりますが)。 ディストリビューション別の環境 今回、構築したのはこんな環境です。Djangoの管理を、何に任…

virtualenv と vim-virtualenv 利用時のTIPS

vim で virtualenv内のpython3開発環境で、コマンドが動かない等の問題に遭遇したので対応したメモです。virtualenvをいれてPython3.4の開発環境を作っていたのですが、workonした後のPython3をvimで触っているときに、シェルやコマンドを実行する際に、/usr…