Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python 言語の紹介 + 仮想環境に pipenv が便利だと思った話

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →
Avatar for Ryota Nishi Ryota Nishi
November 01, 2019

Python 言語の紹介 + 仮想環境に pipenv が便利だと思った話

Avatar for Ryota Nishi

Ryota Nishi

November 01, 2019

More Decks by Ryota Nishi

Other Decks in Technology

Transcript

  1. Python とは (1) インタプリタ言語 (3) マルチパラダイム オブジェクト指向,関数型,etc… (2) 動的型付け def

    add(a, b): return a + b add(1, 2); # 3 add(“A”, “B”) # “AB” python C 言語のように 型指定がいらない No.2
  2. 便利なところ (2) サードパーティ製ライブラリが豊富 (1) C言語などより簡単に書ける ※ 実行速度は劣る int mysum(int num_list[],

    int size) { int total = 0; for (int i=0; i < size; i++) { total += num_list[i]; } return total; } C 言語 def mysum(num_list): total = 0 for n in num_list: # for ループがスッキリ total += n return total python numpy: 行列演算 scikit-learn: 機械学習 matplotlib: グラフ描画 pandas: CSVなどのデータ解析 etc… No.3
  3. 嫌いなところ (1) インデントでブロックを示さなければならない # OK def add(a, b): return a

    + b # NG def add(a, b): return a + b python エディタに頼らないと書きにくい... No.4
  4. なぜ仮想環境が必要? (1) バージョン間の互換性がない print “Test” # OK print(“Test”) # OK

    python 2.x print “Test” # NG: invalid syntax print(“Test”) # OK python 3.x (2) ライブラリをプロジェクトごとに分けてインストールしたい Project A Project B Project C python 2.7 python 3.5 python 3.6 • PyYAML 5.1.1 • numpy 1.16.5 • scikit-learn 0.21.3 • numpy 1.17.1 • pandas 0.24.2 • PyYAML 5.1.2 • requests 2.22.0 • jinja2 2.10.1 • google-auth 1.6.3 仮想環境を作るためのツールが必要 仮想環境1 仮想環境2 仮想環境3 No.5
  5. これまで (1) pyenv + venv で仮想環境を作るのがスタンダード (?) $ python3 –m

    venv test_env $ ./test_env/bin/activate (test_env) $ pip install numpy $ pyenv install 3.6.0 $ pyenv local 3.6.0 (A) 作業中のディレクトリで python 3.6.0 を使う (B) 仮想環境を作成してライブラリをインストール (2) 使用している仮想環境を他の開発者に共有するには $ pip freeze > requirements.txt $ pyenv install 3.6.0 $ pip install -r requirements.txt pip freeze し忘れそ う… No.6
  6. pipenv $ pipenv install numpy $ pipenv --python 3.6.0 (1)

    作業中のディレクトリに python 3.6.0 を指定 + 仮想環境を作成 (2) 仮想環境にライブラリをインストール 使用する Python とライブラリが記載された Pipfile が自動生成 (3) 使用している仮想環境を他の開発者に共有するときは $ pipenv install 新しいPipfileよ~ python 3.6.0 で numpy がインス トールされた仮想環境を使用可 No.7