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

AWS / PHP / Python ちょいメモ

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

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

長年の問題が解決した。。。(発覚してから1年ほどで、解決に使った時間は4時間超)

python パッケージは主に pip で管理しています。たまに苦労するのが gccコンパイルが必要なライブラリ。BeautifulSoupとセットで使いたい lxml もコンパイルが必要なライブラリなのですが、こいつでハマりました。

状況と解決

pip install lxml を実行すると、ダウンロードした後、gccコンパイルが走り特定のところで落ちるという状況でした。

続きを読む

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 enabled you can edit the lines and also have history support.

使い方の例

$ php -a
Interactive shell

php > print("Hello World");
Hello World
php > print(phpversion());
5.5.21
php > $imagickVersion = phpversion('imagick');
php > print($imagickVersion) ;
3.4.3RC1
php > exit
$

続きを読む

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

ついつい忘れてググッてしまう。

インストール済み

  • yum list installed : インストール済みパッケージを一覧表示

過去の履歴

  • yum history list all : 過去に実施した yum の履歴を一覧を全件表示
  • yum history info : 特定のTransaction IDの詳細表示
  • yum history list <パッケージ名> : 特定のパッケージ名の履歴
続きを読む

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

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

こちらにあるように、lxmlやhtml5libがインストールされている場合はそちらが優先されるそうです。


4.4.x からは明示的に指定しないと、自動選択されるとともにWARNING がでて、何を使って動いてのかを教えてくれます。

lxml が自動で選ばれた例)

soup = BeautifulSoup(html)
..python2.7/site-packages/bs4/__init__.py:166: UserWarning: No parser was explicitly specified, so I'm using the best available HTML parser for this system ("lxml"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently.

続きを読む

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

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

先に openssl を入れておかないと、pythonz で落としてきたpythonのBuild時に openssl無しのBuildが行われる。前回は、この順番がおかしかったみたい。



(2016/12/06 追記) ここで紹介した手順では導入できなくなっるようなので、修正手順を別記事にまとめました。

続きを読む