Author Archives: ne-zu

ipythonのログを自動で取っておく

ログだけ見直したら何やっていたか思い出す。そんなことが多いです。

ipythonのログを自動で取っておく方法ですが、ログファイルを一々指定するの面倒だし、保存場所は指定したいしといことで、下記を参考にしました。

~/.ipython/profile_default/startup/01-log-everything.py

に、

一日毎に取るのがよいかどうかは人によりけりだと思いますが。
ありがたいです。

Pythonによるデータ分析入門:p.28

p28のDataFrame.read_tableが動かないんですよ。

p28
修正前
users = pd.read_table(‘pydata-book/datasets/movielens/users.dat’, sep=’::’, header=None, names=unames)
修正後
users = pd.read_table(‘pydata-book/datasets/movielens/users.dat’, sep=’::’, header=None, names=unames, engine=’python’)

Pythonによるデータ分析入門:メモ – 競プロ記録

神。新しい版なら直ってるんだろか。

WordPressでMarkdownが使えないの?

WordPressでMarkdownが使えないの?と思ったら普通に使えました。

プラグイン追加で JP Markdown をインストール。

しかし、ビジュアルエディターでないと使えないとのこと。。でもビジュアルエディター出てこなくなったな?と思ったら、ユーザプロファイルで「ビジュアルエディターを使用しない」にチェックが入っていたのでした。

というわけで、これは”JP Markdown”で書いてます。

  • Markdown記法で書くと
  • 自動的にビジュアルエディタが対応してくれる

って感じですね。

pandasでDataFrameをjoin

pandasでDataFrameをjoinなんて簡単にできるだろ、と思ってたら超簡単でした。

In [1]: pd.merge(df1, df2, left_on=”id”, right_on=”userid”)

みたいに、join_onしたいcolumn名を指定してあげるだけです。
left_joinやright_joinもあるみたいですよ。

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.merge.html

pandasでexcelのインポート、エクスポート

ipythonでpandasはcsvにさくっと出力できるんですよね。入力もできます。

で、似た感じでエクセルデータをやり取りするには

$ pip install xlrt

して、

In[] : df = pd.read_excel(‘path/file’)

でインポートできるというスグレモノ。スグレモノすぎる。
で、出力も同じように

In[] : df.to_excel(‘path/file’)

しようとしたら、

ModuleNotFoundError: No module named ‘xlwt’

って出るので何でだろ?と思ったら出力は”xlwt”なんですね。 excel write だ。
読み込むほうは “xlrd”でした。excel readですね。

django2をec2のapache2.4のvirtualhostで動かすhttpd.conf

django2をec2で動かしたいけど、apache2.4はすでに走っていてPHPのサイトがある、のでvirtualhostでdjango動かすというのが何とか起動まで確認できました。

もともとvirtualhostは動いてますのでそこの設定は省略で。
気をつけるところは、

WSGIDaemonProcess hoge.com python-path=/var/www/project/mysite python-home=/var/www/project/venv/

ではないでしょうか。python-pathもpython-homeもいるのに気付かず、venv環境が読めていなかったのと、
Directoryの中に設定を置いて、

Syntax error on line 4 of /etc/httpd/conf.d/11-django.conf:
WSGIDaemonProcess not allowed in context

などと怒られたりしていました。何にしろphpもpythonも同じapacheで動いているので節約できる・・のですが、やはりこんなことはあまりしたくないですね笑

albで繋がりにくいことがあるのを解消

AWSでケチケチ設計だとALBにインスタンス1つしかぶら下げてない、みたいなことあるじゃないですか。
そんな運用でどうにも接続が遅いときがあったんです。気がつくと繋がってる、みたいな。

EC2(http) <-> ALB(https) <-> the Internet

なんですが、

ロードバランサー属性のhttp/2がよくない!と聞き、それをoffにしたがあまり変わらず。。

問題は

アベイラビリティゾーンの選択で2つサブネットを選ぶところ、1つのサブネットがPrivateだったのが駄目、なのでした。

どうせ1つしかインスタンスつなげてないので、それにアクセスできるサブネットがPublicだったらいいじゃないか、と思いますよね?(浅はか)

もう1つpublicなサブネットを作り、2つともpublicなものにしたら直しました。メモメモ。

EC2のタイムゾーンを日本に変更

昔は設定ファイルを色々変えてた記憶があるのですが、今は設定ファイルをコピーするのがベターなんですかね?

cp /usr/share/zoneinfo/Japan /etc/localtime

シンボリックリンクを貼るだけでもいいらしいですが、まあ。

django2をapache2 @ ec2 で動かす。

django2をec2のapacheで動かします。とりあえずvenvを起動。

django2.0でapache2で動かす。

djangoでapacheでlocalhostで動かしてみよ、と思っただけで、数時間経過しました笑
いやー、本当このあたりがややこしくて面倒ですね。私みたいにここでへこたれそうな人たちのためにメモを残しておきます。
とりあえず今起動まで出来た設定です。
こういうの考えるとPHPはいかに優しいかというのが身にしみますね。

・プロジェクトのために作ったディレクトリ:project
project
–project
–mysite
–blog
–static
みたいな感じですね。
・venvの環境:venv

として読み替えてください。

httpd.confに、

です。
どれが何の設定、というのはおいおい追っていきます・・

あ、後、mysqlを動かすためにpipで

PyMySQL

を入れていたのですが、apacheだと、

mysqlclient

を要求されたので、pip installしました。