Pythonにおけるモジュール、パッケージ、ライブラリとは [[https://ai-inter1.com/python-module_package_library/]]
= Condaによるpython環境構築 =
IGWN (the International Gravitational-Wave Observatory Network) Computing and Software で用意された環境(igwn-py39)を元にするのがよい。<
>
使い方は[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=13584|JGW-G2113584]]を参照<
>
== igwn-py39 を元にした環境構築 ==
[[https://computing.docs.ligo.org/conda/environments/igwn-py39/]]からlinux-64と書かれたものをダウンロードしてくる。
{{{
wget https://computing.docs.ligo.org/conda/environments/linux/igwn-py39.yaml
}}}
ダウンロードしたレシピファイルを元に仮想環境を作る。→少し時間がかかる。<
>
''myenv'' の所は自分の好きな名前にしてよい
{{{
conda env create -n myenv --file igwn-py39.yaml
}}}
この時、出てくる質問に y と答えると自分用のconda環境ができるらしい。出てこないで進む人もいる。
{{{
done
#
# To activate this environment, use
#
# $ conda activate myenv
#
# To deactivate an active environment, use
#
# $ conda deactivate
}}}
と表示されたら''myenv''環境のできあがり。
{{{
conda info -e
}}}
と打つと環境一覧が表示され、自分のホームの下に "".conda/envs/myenv"" というものが見えるはず。
仮想環境に入るには
{{{
conda activate myenv
}}}
と打てばよい。
condaの使い方は以下などを参照 (ググれば腐るほど出てきます)
* [[https://www.python.jp/install/anaconda/conda.html|Conda コマンド:Python環境構築ガイド]]
* [[http://www.yamamo10.jp/yamamoto/comp/Python/settings/install/index.php|Python環境設定: インストール]]
* [[https://qiita.com/naz_/items/84634fbd134fbcd25296|Anaconda でよく使うコマンド一覧]]
* [[https://devlights.hatenablog.com/entry/2017/12/09/183715|conda に conda-forge チャネルを追加 (conda config, channel, 追加パッケージ)]]
いちいち仮想環境に入るためにコマンドを打つのは面倒なので、以下を~/.bashrcもしくは~/bash_profileに書いておけば、ターミナル起動時に自動的myenvに入るように設定できる
{{{
# User specific aliases and functions
source /disk/sw/conda/etc/profile.d/conda.sh
conda activate myenv
}}}
source以下は、実際のconda.shの絶対パス (人/PCによって異なるので、自力で探してください)
== イチから環境構築 ==
igwn-py39を元に作った環境にgeopandas(地図をplotしたり位置情報を含んだ表計算をするモジュール)を入れようとすると、パッケージの依存性のせいかうまくいかない。
自前で新しい環境を構築し、必要なパッケージを手で入れていけばこの問題は起こらない。とりあえず以下の手順でやれば最低限のパッケージは入る。(astropyとかはgwpyを入れると勝手に入る)
{{{
conda create -n myenv python=3.9
conda activate myenv
conda install gds-root-extensions-base gds-root-extensions-crtools root_base uproot uproot-base uproot3 uproot3-methods
conda install geopandas gwpy lalsuite pycbc pyproj obspy geopy jupyter
}}}
== パッケージ一覧を表示 ==
{{{
conda list --export
}}}
または
{{{
conda list --explicit
}}}
(表記が異なる。お好きな方を)
== 自分の環境を保存してバックアップ/別のPCで再現する ==
対象の環境名をmyenvとすると、
{{{
conda activarte myenv
conda env export > myenv.yml
}}}
もしくは、対象のconda環境に入らずに書き出す場合は、
{{{
conda env export -n myenv > myenv.yml
}}}
== よく使う(インストールしておくべき)ライブラリリスト ==
* ファイル・文字列操作など
* glob
* os
* natsort
* chardet
* 数値計算関係
* numpy : 基本はコレ
* scipy
* datetime ; 時刻を扱う
* iminuit : Fitするときに使う ([[https://hackmd.io/@tenoto/Skl_wArqD|参考]])
* probfit : Fitするときに使う
* lmfit : Fitするときに使う
* bottleneck : numpy.arrayの移動平均などを簡単に計算できる
* pandas : 表計算をしたり、csvファイルを読み書きしたり
* numexpr : PandasのQueryの処理を高速化する
* pandas-profiling : pandasのデータフレームの概要を表示する
* xlrd, XlsxWriter : エクセルファイルの読み書き
* 描画関係
* matplotlib : 基本はコレ
* japanize-matplotlib : matplotlibで日本語を使う
* mpl_toolkits : matplotlibで3Dの描画や地図の描画などをするのに使う
* plotly : ブラウザ上で拡大縮小などがインタラクティブにできる
* PyQt5 : matplotlibよりも高速で、リアルタイム描画に向いているらしい
* 機械学習
* tensorflow
* scikit-learn : 機械学習だけでなくICA, PCAも
* pytorch : DeepCleanではpytorchを使っている
* 重力波関係
* GWpy : 基本はコレ
* lalsuite : フレームファイルの読み書きに必要。直接使わなくてもインストール必須
* pycbc : CBC解析 (Matched filtering とか)
* GWDetChar : DetChar解析
* GWSumm : サマリーページ
* GWDataFind : 重力波データを引っ張ってくる
* pyomicron : オミクロントリガーを使う
* dttxml : diagguiのxmlファイルを読み込む
* nds2utils
* python-nds2-client
* 天文関係
* astropy
* 地球物理系
* geopandas : 位置情報入りの表計算や地図のplotなど (注意:igwn-py39を元に構築した環境には、依存性か何かのせいでインストールできない!)
* pyproj : 地球上の距離計算
* geopy
* folium
* [[https://docs.obspy.org/|obspy]] : 地震波解析
* [[https://github.com/MTgeophysics/mtpy|mtpy]] : 地磁気地電流法(MT法)解析
* ROOT
* gds-root-extensions-base
* gds-root-extensions-crtools
* root_base
* uproot
* uproot-base
* uproot3
* uproot3-methods
* スクレイピング関係
* requests
* beautifulsoup4
* lxml
* selenium
* オーディオ関係
* pysoundfile
* playsound
* python-sounddevice
* wavio