AWS / PHP / Python ちょいメモ

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

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フォントを指定したところエラーが…

STATIC_URL と MEDIA_URL は 異なる値が必要

タイトルの通りです。本番側でDebug=Falseで触ってたら気づかなかった。 FileField 使ったのですが、同じパスにしたら、上げたファイルをapacheの設定変えなくても見えるじゃんと、手抜きしたのがいかん。ちゃんと、開発でDebug=Trueで作業してからあげまし…

homebrew direnv には homebrew python が必要?

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

Django の Debug Toolbar をリモート接続で表示

以前書いたエントリーの追記。やはり、リモートでデバッグしてる時にも、Debug Toolbar を使いたくなったので調べてみると、接続元IPがわかれば、設定に書いてあげることで表示が可能でした。 設定方法 settings.py とかに、次の変数をセットしてあげればOK…

Apache で VirtualHost一覧を表示

久しぶりに触るたびに、忘れてる気がするのでメモ。簡単なコマンド: apachectl -S VirtualHostのみを表示する場合: apachectl -t -D DUMP_VHOSTS すごく便利ですよね?Apache使いなら、当たり前なのだろうと思いつつも。

Django アップグレード手順まとめ 1.6.x to 1.8.x

この記事は、Python その2 Advent Calendar 2015 の10日目の記事です。昨日は @CS_Toku さんの Python2からPython3.0での変更点 - Qiita 。明日は @FGtatsuro さん ! どんな話題? Webアプリを長期運用する時に避けれないのが、フレームワークのアップグレ…

django-sphinxdoc 試したけど使わなかった

こちらのエントリーみて、納品直前に使いかけた django-sphinxdoc 。django-sphinxdoc の動作としては、Sphinx ドキュメントを JSON 形式でDBに入れて、Heystackで全文検索できるようにしてくれるというもの(と思われます)。しかし、半日ほど試行錯誤した…

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…

OS X で Wireshark を使う

思い立って調べてみたところ、うまく動作したのでメモしておきます。OS X 10.10.2 (Yosemite) に、homebrew を使って wireshark 1.12.4 の Qt版をインストールしました。 '--with-qt' なしでインストールしたら、GUIなプログラムがインストールされなかった…

言語・locale 変更方法 (日->英, 英->日)

Linux の言語(ロケール / locale)変更するときのコマンドや関連ファイルのメモ。X 上で設定画面があるディストリビューションもあるのかもしれないのですが、Debian/Ubuntu系でのコマンドを使った方法の紹介です。 コマンドや設定ファイル だいたい、これ…

Django と SQLite/MySQL : 最大値とUNIQUE

前回に引き続き、DBを移行する場合にひっかかりそうなTIPS第2弾。Djangoってよりは、Modelの裏側の意識が必要なケースありますね的な話です。MySQL使っていて、こんなエラーが出た時には参考になるかもしれません。 Specified key was too long; max key len…

Django と SQLite/MySQL : 照合順序を意識しよう

Django は、pythonのWebアプリケーションフレームワークで、MVCならぬMTV (Model - Template - View) モデルで構成されています。Model を定義することで、バックエンドのデーターベース定義などは自動で生成してくれる形となっており、プログラミングする事…

mysqldump で MySQLバックアップを自動化

気になるところなどがあったので、cronで自動化を目指した手順をまとめ。適切なユーザー作成やロックなど、ちゃんと意識しないとですね。環境: mysql 5.5.40 全データーベースを1つのファイルに保管する事を想定 バックアップ準備の手順 MySQLにユーザー作…

Django で エラーの扱いを考える

Django 使って ?(ハテナ)になった事の一つは、500エラーなどが Webログに残らない点。 メール通知 settings.py の DEBUG=True を設定すれば、エラー発生時にエラーページは表示されるのですが、エラーログ自体はログファイルに記録されないのですよね。本…

CakePHP 多言語化ステップ

CakePHPのi18n(+10n?)機能を使うと、Webページの文章の多言語はもとより、404, 500エラーなどのエラーページのメッセージなども多言語化できます。そもそも、デフォルトで生成されるコード(Layout/default.ctpなど)は、多言語化利用を前提としたつくり…

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

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

CakePHP Upload プラグイン TIPS

以前使った CakePHP Upload Pluginを、久しぶりに使った際のメモ。 以前の利用時メモは、こちら > CakePHP2.x対応 ファイルアップロード機能追加プラグイン - AWS / PHP / Python ちょいメモ 。 ドキュメント Welcome to CakePHP-Upload’s documentation! — …