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

AWS / PHP / Python ちょいメモ

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

VirtualBox の 共有フォルダ に シンボリックリンク利用はさける

今回は、これだけ。「Windowsホスト上のシンボリックリンクを、VirtualBoxの共有フォルダー として設定しないでおこう。」vagrant 1.9.2 + VairutalBox 5.1.18 on Win10Pro(x64) の環境で遭遇。 指定してしまった時のエラー ==> host1: Mounting shared fold…

WinのVM環境 : Hyper-V or VirtualBox

Win上の開発環境を検討していて、VirtualBoxとHyper-Vって同居できないという事に気づいたのでメモ。環境: Windows 10 Pro (x64) VirtualBox version.5.1.18 最終的に僕の場合は、Hyper-Vはインストール済みだが、BCDの編集で起動時にHyperVisorをOffにする…

Django での static files の扱い方まとめ (追加)

以前書いたPOST の中で避けてたw点、よい解決方法が見つかったのでメモ。400.html, 500html などの動作確認を行いたいなーって思って。Django1.8.17で確認しました。 元POST : Django での static files の扱い方まとめ - AWS / PHP / 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 もコンパイルが必要なラ…

php シェルを使って簡単に検証

ちょっとしたコードの動作を確認したい場合に使えると思う。というか使った。インタラクティブ Shell便利ー $ man php ... -a Run PHP interactively. This lets you enter snippets of PHP code that directly get executed. When readline sup- port is en…

管理時に欲しくなる yum オプションをまとめておく

ついつい忘れてググッてしまう。 インストール済み yum list installed : インストール済みパッケージを一覧表示 過去の履歴 yum history list all : 過去に実施した yum の履歴を一覧を全件表示 yum history info : 特定のTransaction IDの詳細表示 yum …

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! — …

Imagick for PHP をインストール on RHEL

UbuntuからRedHatに引っ越したとろ、PHPのImagick extensionがyumで取得できない事をに焦った時の対応履歴。PPAみたいなリポジトリ追加しての対応方法もあるんだろうなぁと思いつつ、上手くいったので make install っぽい形で進めました。 RedHat Enterpris…

(調べがちの)たまーに必要な Git コマンド

git の使い方って結構しらべませんか?僕は、開発してると数日に一回は調べてる気がします。 たまーに欲しくなるコマンドを列挙してみました。まだ間違いはあるかもしれないのですが、自分のメモ代わりに。 ブランチ ブランチ名の変更 ローカル 可能 git bra…

PHP on Apache2.4 & RedHat 6 (by SCL) その2

mod_php を使う方法に変更。RedHat 6 by SCL の環境構築は、こちらに落ち着きそうです。使ってるのは Apache 2.4.6, PHP 5.5.6。先日書いた PHP on Apache2.4 & RedHat 6 (by SCL) - AWS / PHP / Python ちょいメモ にて、FastCGIを使ってホストする方法をま…

PHP on Apache2.4 & RedHat 6 (by SCL)

利用している RedHat 6 のサーバーに、PHPを追加サポートする事に。以前 Redhat6.x + SCL 使う時に気をつけたい3つのポイント - AWS / PHP / Python ちょいメモ で書いた SCLの仕組みを使って構築しました。たぶん、CentOS 6 + SCL のケースも同じで行ける…

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 以降 (以前のバ…

webmaster@localhost が FROM に使われてるのは。。。

Django send_mail() を使って送るメールのFROMアドレスをどこで変更するのか調べた。'webmaster@localhost' + domain という、なんとも奇妙なアドレスが使われているため変更しようと思い。 設定箇所 settings.py の DEFAULT_FROM_EMAIL がデフォルトのまま…

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

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

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

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