pythonの利用方法

サーバ上でのpythonプログラムの実行、開発

次のサーバはAnaconda3がインストールされている。

サーバにはOSパッケージ(Ubuntu)に含まれるpythonも入っているので、Anacondaのほうを優先的に使用するには、pathの追加設定が必要である。~/.bashrcに

# added by Anaconda3 4.3.1 installer
export PATH="/opt/anaconda3/bin:$PATH"
# pagerがおかしくなって、manが見られなくなったことへの対応
export PAGER=/usr/bin/lv
を書いておく。(pagerの指定はなくても良い。)

ターミナル上で、

which python3

としたときに、anacondaの方を表示してあればそれでよい。

実行

コマンドラインでの実行

即時実行には, pythonスクリプトの先頭に

#!/usr/bin/env python3
# coding: UTF-8
と書いておき(codingは念のため)、 ファイルに実行権限をつける
chmod +x xxxxxx.py
以上により、コマンドラインで <<literal> <pre class="brush:bash; tab-size: 8;"> ./xxxxxxx.py </pre> </literal> で実行できる。(頭のpath名はは適当に.)

バッチ処理

logoutしても、バックグラウンドで実行してくれるようにするには、バッチジョブとして投入する。

簡単には、

echo "./xxxxxxx.py" | batch
とする。

バー"|"はパイプを表す。 シェルのヒストリー機能を利用すれば、次のジョブの投入が簡単である。

バッチジョブ終了の知らせ

終了はメールで知らせてくれる。

ホームディレクトリに".forward"というファイルを作り、その中にメールを転送したいアドレスを書いておく。

Tips on coding

(古臭いものもあります。)

格好の良いコマンドライン引数利用

argparseを使うと、代入するキーと値のセットをゲットできる。 順序を気にしなくても良いほか、省略可能なものと必須のものを設定できる。

# -*- coding: utf-8 -*-
"""
実用的なコマンドライン引数: argparse
  標準では sys.argv[0], sys.argv[1], のように順番にsys.argvに入るが、
  たくさんの引数や、あってもなくてもよい引数を使いたい場合には
  argparseを利用するのが便利
 - "-s"のようなのはなくても良い
 - filenameは必須
 - 規則に合わない場合は使い方を表示してくれる。
"""
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("filename")
parser.add_argument("-s","--stime")
parser.add_argument("-e","--etime")
args = parser.parse_args()
print(args)

複数日のデータを日にちをインクリメントして実行する

# -*- coding: utf-8 -*-
"""
コマンドラインで指定した期日範囲をインクリメントして実行
"""
def print_arg(day=""):
    print(dt.strftime(day, "%Y%m%d"))

from datetime import datetime as dt, timedelta
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-s","--stime")
parser.add_argument("-e","--etime")
args = parser.parse_args()
print(args.stime)

day = dt.strptime(args.stime, "%Y%m%d")
end_day = dt.strptime(args.etime, "%Y%m%d")
while day < end_day:
    print_arg(day)
    day += timedelta(days=1)

pandasで読み込んだ列の一つをインデクスにセットする

data.set_index('xxx', inplace=True)

pandasで読み込み、プロットするシンプルな例の一つが、Google Driveの「べるが」のフォルダにある。

パッケージのインストール

Anacondaパッケージに含まれる開発環境、実行環境

spyder

開発環境と実行環境を一体化したもの

jupyter notebook

(mathematicaのノートブックと似ている)

jupyter 使い方メモ

jupyter notebook —notebook-dir="/"

のように打つ。(notebookの前はマイナスを2つ)

jupyter QTConsole

ゼミなどで実行してみる場合などでは便利だろう。

その他

Ipython

対話型実行環境であるが、上述のQTConsoleが動くならそれを利用すればよい。

Anaconda Prompt

ssh経由での利用

サーバにjupyterを立ち上げておいて、sshのポートフォワーディングを利用して手元のブラウザで実行するには、たとえば https://coderwall.com/p/ohk6cg/remote-access-to-ipython-notebooks-via-ssh のようにする。

jupyterhub

jupyterhubをサーバにインストールすると、サーバの認証に基づいて複数ユーザが使える。

anacondaをインストールしてjupyterhub経由で利用することも可能。

立ち上げの時間がかからないことも利点

細かいこと

図をWordやPowerpointに貼る

WordやPowerpointではベクトル形式の画像としてはemf形式を利用するようだ。

pythonではemf形式の出力ができない?ようなので、図はsvg形式で保存し、Inkscapeなどでemf形式に変換する。

Linuxだと

  inkscape —file temp.svg —export-emf temp.emf

のような感じ。

チュートリアル

修士共通科目「数値計算特論」用ページにあるチュートリアルページを参照

とりあえず、下記がよい。

http://www.turbare.net/transl/scipy-lecture-notes/index.html