39.3K Views
March 10, 18
スライド概要
Windowsマシン上でAnacondaをインストールすることなく,Visual Studio CodeとバニラのPythonのみを使ってPythonの実行環境を構築する方法を解説.
さらに,pipenvを使った仮想実行環境の構築方法やJupyter notebookの作成・実行方法も解説.
追記アリ版はこちら→https://qiita.com/d-kitamura/items/3b8c4ac362668cac6e75
http://d-kitamura.net/links_en.html
2020年3月10日作成 Windowsマシン上で Visual Studio Codeとpipenvを使って Pythonの仮想実行環境を構築する方法 (Jupyter notebookも) Daichi Kitamura
本資料の目的 • Windowsマシン上で,Anacondaを使わず,VSCode(エ ディタ)とPython(インタプリタ)のみで,Pythonを実行で きる環境の構築を解説 – 有名なPython環境インストーラのAnacondaは使わない • 使わない理由は次スライド • pipenvを利用したディレクトリ完結型の仮想環境の構築 方法も解説 – インストールするパッケージの管理がディレクトリ単位になるの で,PC本体の実行環境を汚すことなく開発できる • Jupyter notebookを実行する環境の構築方法も解説 – Jupyter notebookはセル単位でコードの実行・確認ができる初 学者向けの有名なエディット環境 2
目次 • PythonとVSCodeについて • VSCode+Pythonの実行環境の構築方法 – VSCodeのインストールと初期設定 – Pythonのインストールと初期設定 – VSCode+Pythonの環境構築・実行・デバッグ • pipenvによる仮想実行環境の構築方法 – 仮想実行環境とは – pipenvのインストールと初期設定 – pipenvによる仮想環境の構築・実行 • Jupyter notebookの実行環境の構築方法 – Jupyter notebookとは – Jupyter notebookのインストール – Jupyter notebookの実行 3
目次 • PythonとVSCodeについて • VSCode+Pythonの実行環境の構築方法 – VSCodeのインストールと初期設定 – Pythonのインストールと初期設定 – VSCode+Pythonの環境構築・実行・デバッグ • pipenvによる仮想実行環境の構築方法 – 仮想実行環境とは – pipenvのインストールと初期設定 – pipenvによる仮想環境の構築・実行 • Jupyter notebookの実行環境の構築方法 – Jupyter notebookとは – Jupyter notebookのインストール – Jupyter notebookの実行 4
Python • Python(ぱいそん)の特徴 – – – – 高水準汎用スクリプト言語(1行ずつ実行) 動的な型付け 機械学習・深層学習分野で目覚ましく普及 ライブラリが豊富,情報が豊富 • 実行環境構築がめんどくさい場合が多い – 本資料では高機能エディタのVisual Studio Codeからバニラの Pythonを実行するような環境の構築手順を紹介 – 「とりあえずAnaconda入れとこ」は簡単だが危険 • AnacondaはPython環境の一括インストーラ(IDEからパッケージまで) • Anaconda独自の仮想環境パッケージ管理ソフトの「conda」は,Python 純正のパッケージ管理ソフトの「pip」と共存すると混乱の元になる – condaだけで済めば良いが,pipでなければインストールできないパッケージが存在 • condaでnumpyという計算用パッケージをインストールすると,線形代数 演算ライブラリ(BLAS)がOpenBLASではなくIntel MKLになり低速 5
Visual Studio CodeとPython • VSCodeの特徴 – 汎用高機能テキストエディタ – 開発はマイクロソフト – 豊富な拡張機能により,あらゆるテキスト記述に適合 • C,C++,Java,HTML,CSS,MATLAB,Pythonなどなど・・・ • VSCode+Python – Pythonの統合開発環境 (IDE)の機能 • 実行・デバッグ – 一番シンプルなPython 開発環境ではなかろうか 6
目次 • PythonとVSCodeについて • VSCode+Pythonの実行環境の構築方法 – VSCodeのインストールと初期設定 – Pythonのインストールと初期設定 – VSCode+Pythonの環境構築・実行・デバッグ • pipenvによる仮想実行環境の構築方法 – 仮想実行環境とは – pipenvのインストールと初期設定 – pipenvによる仮想環境の構築・実行 • Jupyter notebookの実行環境の構築方法 – Jupyter notebookとは – Jupyter notebookのインストール – Jupyter notebookの実行 7
VSCodeのインストール • ダウンロード – https://code.visualstudio.com/download/ – 各プラットフォームに合わせてダウンロード(64bit版) 8
VSCodeのインストール • インストール – ダウンロードしたインストーラをダブルクリック – 使用許諾契約書に同意して「次へ」 9
VSCodeのインストール • インストール – パスはデフォルトのまま「次へ」 10
VSCodeのインストール • インストール – プログラムグループ設定もデフォルトのまま「次へ」 11
VSCodeのインストール • インストール – 追加タスクの選択を好みで設定して「次へ」 • コンテキストメニューに[Code で開く]を追加すると,右クリックで起動でき るので便利 12
VSCodeのインストール • インストール – 最終確認をして「インストール」 • インストール後,VSCodeが自動起動する – 一度閉じて Windows再起動 13
VSCodeの拡張機能のインストール • 画面左の一番下のアイコンが拡張機能関係 – クリック 14
VSCodeの拡張機能のインストール • 日本語化の拡張機能 – Search extensionsに「Japanese」と入力し「Install」をクリック 15
VSCodeの拡張機能のインストール • 日本語化の拡張機能 – インストール後の画面右下のRestart Nowをクリックして再起動 16
VSCodeの拡張機能のインストール • 日本語化の拡張機能 – VSCode再起動後,日本語化される 17
VSCodeの推奨設定 • Hot exit機能をオフ – ファイル未保存でもVSCodeを終了できる機能(混乱の元) 18
VSCodeの推奨設定 • Hot exit機能をオフ – 設定タブの「設定の検索」に「hot exit」と入力し「off」に設定 19
Pythonのインストール • ダウンロード – https://www.python.org/downloads/ – 各プラットフォームに合わせてダウンロード • Pythonのバージョンは3.6.10か3.7.6にする方が無難(2020年3月現在) • 新しいとPythonのライブラリやパッケージが対応していない可能性 20
Pythonのインストール • ダウンロード – https://www.python.org/downloads/ – x86-64(64bit版)なら何でも良いが,executable installerを選 択してダウンロード • LinuxやMacの場合は専用のものを選択 21
Pythonのインストール • インストール – ダウンロードしたインストーラをダブルクリック – 「Customize installation」をクリック 22
Pythonのインストール • インストール – 全項目にチェックを入れた状態で「Next」 23
Pythonのインストール • インストール – 「全ユーザにインストール」,「Pythonパスを環境変数に設定」 を選択して「Install」(全ユーザにインストールしないとpipenvでパスが通らずこける) – インストール完了後「Close」 24
VSCode+Pythonの環境構築・実行 • 実際にPythonスクリプトを作成し実行してみる – 新規フォルダ「test」を作成し,右クリックして「Codeで開く」 testという フォルダを VSCodeで 開いている 状態 (中身は空 なので何も ない) ようこそタブ は消しておく (中央下の チェックマー クを外すと 毎回表示さ れなくなる) 25
VSCode+Pythonの環境構築・実行 • 実際にPythonスクリプトを作成し実行してみる – Python用の拡張機能をインストール 26
VSCode+Pythonの環境構築・実行 • 実際にPythonスクリプトを作成し実行してみる – ファイル管理に戻り「ファイル」→「新規ファイル」でファイル作成 27
VSCode+Pythonの環境構築・実行 • 実際にPythonスクリプトを作成し実行してみる – 「Untitled-1」という新規ファイルが作成される ファイルタブ (Untitled-1) テキスト入力 スペース (VSCodeは テキストエ ディタ) 28
VSCode+Pythonの環境構築・実行 • 実際にPythonスクリプトを作成し実行してみる – 「ファイル」→「名前を付けて保存」で「test.py」として保存する 開いているエディタ がtest.pyに変化 testフォルダ内の ファイル一覧にも test.pyが出現 現在編集しているファイルが Pythonのファイルということを VSCodeが認識したので, Python用の拡張機能が動作し, Pythonインタプリタが起動(先ほ どインストールしたPython本体 とVSCodeがリンクしている) 29
VSCode+Pythonの環境構築・実行 • 実際にPythonスクリプトを作成し実行してみる – 適当にプログラムを書いてみましょう ファイルが未保存のときは白丸 Ctrl+sで保存 – 保存してF5キー(実行)を押すとデバッグメニューが表示 • 「Python File」をクリック(あるいはそのままエンター) 30
VSCode+Pythonの環境構築・実行 • 実際にPythonスクリプトを作成し実行してみる – ターミナル(Windows PowerShell)が表示され,その上で Python実行コマンド(「python ./test.py」)が実行されて結果が 表示される 実行結果 – おめでとうございます(うごきました) 31
VSCode+Pythonのデバッグ • 実行中にデバッグしてみる – Pythonスクリプト「inc.py」を新規作成し下記を入力して保存 – F5→エンターで実行すると結果が表示される 32
VSCode+Pythonのデバッグ • 実行中にデバッグしてみる – エディタの行番号の左側をクリックしブレイクポイントを設置 クリックする と赤丸が付く (ブレイクポ イント) 33
VSCode+Pythonのデバッグ • 実行中にデバッグしてみる – エディタの行番号の左側をクリックしブレイクポイントを設置 変数に格納 されている現 在の値が確 認できる ここで続きを 実行する等の 操作が可能 ブレイクポイ ントの直前ま で実行される 34
その他の情報 • VSCodeの新規ターミナルの起動 – メニューバーの「ターミナル」→「新しいターミナル」 • ターミナルの過去の文字列(コマンドログ)を消す – 「clear」と入力しエンター • 対話モードのPythonインタプリタ – VSCodeのターミナル(Windows PowerShell)上で「py」と打つ と対話モードのPythonインタプリタが起動 • 1行ずつ実行できるのでちょっとした確認などに便利 • 対話モードは「exit()」で終了 35
目次 • PythonとVSCodeについて • VSCode+Pythonの実行環境の構築方法 – VSCodeのインストールと初期設定 – Pythonのインストールと初期設定 – VSCode+Pythonの環境構築・実行・デバッグ • pipenvによる仮想実行環境の構築方法 – 仮想実行環境とは – pipenvのインストールと初期設定 – pipenvによる仮想環境の構築・実行 • Jupyter notebookの実行環境の構築方法 – Jupyter notebookとは – Jupyter notebookのインストール – Jupyter notebookの実行 36
仮想実行環境とは • Pythonは「パッケージ」と呼ばれる追加ライブラリをイン ポートすることで,使える関数等が増える – 数値計算にはnumpy,データ操作にはpandas等 – 「import numpy as np」を宣言するとnumpyの関数がnp.xxxと いう形で使える • C言語の#includeでヘッダーファイルを読み込むのと同じ概念 • Pythonでは「pip」と呼ばれるパッケージ管理ソフトを使っ て各パッケージをインストール・アンインストールする – ターミナルで「pip install numpy」を実行すれば,numpyがイン ストールされる • 後述のバージョンを指定していないので最新版のnumpyが入る – ターミナルで「pip list」を実行すれば,現在インストールされてい るパッケージ一覧が表示される – 「pip uninstall numpy」でnumpyをアンインストールできる 37
仮想実行環境とは • Pythonはオープンソースソフトウェアなので,各パッケー ジも追加機能が次々開発され,バージョンが上がっていく – あるパッケージは他のパッケージの機能を参照したりする(つま り両方のパッケージがインポートされていないと動かない)ため, あるパッケージのバージョンを上げると運が悪い場合他のパッ ケージが動かなくなることがある • 例:「バージョン3.6のPython」に「バージョン1.14.1のnumpy」と「バー ジョン0.22.0のpandas」をインポートした実行環境なら動くよ! – 言い換えれば「それ以外の実行環境では動かないかもよ!」 • pipでインストールしたパッケージなら実行環境を出力可 – 「pip freeze」でインストール済のパッケージをrequirements.txt というテキストファイルで出力可能 – 別のPC等で実行環境を再現したい場合は,上記のテキスト ファイルをコピーし,「pip install –r requirements.txt」を実行す れば,まとめてインストールできる 38
仮想実行環境とは • 必要なパッケージを必要になったタイミングでpipインス トールしているとどんどん増える(気が付けば200パッケージ等) – プロジェクトに必要最小限のパッケージが分からなくなる • 実行環境(Python本体や各パッケージのバージョン)を簡単に 切り替えることができれば,自分の現在の実行環境を壊 すことなく,他者の実行環境をすぐに構築できて便利 • 「仮想環境(virtual environment)」という概念が登場 – 実行環境を「仮想的に」管理・構築 • 例えば,Python本体や各パッケージのインストールをPC本体ではなく ディレクトリ内で完結した形で管理可能 – ディレクトリを変えれば環境が変わるので,同じPCでプロジェクト毎に異なる実行環 境を構築できる – 他のPCに移すときも,ディレクトリごと(あるいはパッケージ管理情報を)渡せばOK – 仮想環境用パッケージ管理ソフトは戦国時代(ありすぎ) • 「conda(Anaconda環境のみ)」,「virtualenv」,「venv」,「pipenv」,… 39
pipenvのインストールと初期設定 • 本資料では恐らく一番スタンダードな「pipenv」による仮 想環境構築を紹介 – pipでPC本体にインストールするのは「pipenv」だけ – 他はpipenvで全てディレクトリ(プロジェクト)毎にインストール • pipenvのインストール – VSCodeを起動 – メニューバーの「ターミナル」 →「新しいターミナル」 – 「pip install pipenv」を入力 し実行 • 色々と文字がでてpipenvが インストールされる • 「pip list」で確認 – pipenv以外にもいくつかの 必要なパッケージが入る 40
pipenvのインストールと初期設定 • pipenvは,デフォルトでは仮想環境ファイル(インストー ルしたパッケージ情報)をユーザーホーム配下に格納 • ディレクトリ(プロジェクト)毎に 仮想環境を作りたい場合は 環境変数を変更する – 「コントロールパネル」 →「システムとセキュリティ」 →「システム」 →左メニューの「システムの 詳細設定」→「環境変数」 41
pipenvのインストールと初期設定 • ディレクトリ(プロジェクト)毎に仮想環境を作りたい場合 は環境変数を変更する – 「システム環境変数」の欄の「新規」をクリック – 変数名を「PIPENV_VENV_IN_PROJECT」,値を「true」でOK 入力(スペルミスに注意) 42
pipenvのインストールと初期設定 • 念のためVSCodeの仮想環境のディレクトリ設定を確認 – VSCodeのメニューバーの「ファイル」→「基本設定」→「設定」 – 「設定の検索」に「python.venvPath」と入力して出てくる項目が 「.venv」になっていればOK 43
pipenvによる仮想環境の構築・実行 • 実際に仮想環境でPythonをインストール・実行してみる – 新規フォルダ「envTest」を作成し,右クリックして「Codeで開く」 – 新規ターミナルを起動し「pipenv --python 3.7」を実行 • 但しシステムに3.7のpythonがインストールされている必要あり 「.venv」というディレクトリ と「Pipfile」というファイル が自動生成される Pipfileにはインストールし たパッケージとそのバー ジョン一覧が記述され, 「.venv」にはパッケージ本 体がインストールされてい る 44
pipenvによる仮想環境の構築・実行 • 実際に仮想環境でPythonをインストール・実行してみる – 「envTest」内でファイル「test.py」を新規作成し,VSCodeで開く – どのPythonを使うか選択のメッセージが表示される 今はPC本体にイ ンストールされて いるPythonと, ディレクトリ直下 (.venv内)にイン ストールされてい るPythonの2台を VSCodeが認識し ている ここをクリックして 使いたいPython の実行環境を選 択できる 45
pipenvによる仮想環境の構築・実行 • 実際に仮想環境でPythonをインストール・実行してみる – 仮想環境(ディレクトリ直下)のインタプリタを選択 • 当然,PC本体にインストールされているPythonを使うこともできる 仮想環境(.venv) のPythonを選択 これは消す 46
pipenvによる仮想環境の構築・実行 • 実際に仮想環境でPythonをインストール・実行してみる – 仮想環境での実行準備が完了 – Hello worldしてみる(F5→エンターで実行) 仮想環境の Pythonで実行され ている 仮想環境の Pythonが選択さ れている 47
pipenvによる仮想環境の構築・実行 • 実際に仮想環境にパッケージを追加してみる – numpyをインストールするには「pipenv install numpy」を実行 • 「pipenv install numpy==1.16」のようにバージョン指定も可能 「.vscode」という ディレクトリと 「Pipfile.lock」とい うファイルが新規 作成される 「Pipfile」も実は numpyが追記され ている パッケージのバー ジョン管理は 「Pipfile」と 「Pipfile.lock」の2 つで行われる(違 いの説明は割愛) 仮想環境に numpyがインス トールされた 48
pipenvによる仮想環境の構築・実行 • 実際に仮想環境にパッケージを追加してみる – numpyを使うスクリプトを実行 • numpyがインストールされていなければエラーが出るが・・・? numpyを使うスク リプトがエラーなく 実行された (仮想環境にイン ストールされてい るPythonとnumpy が実行された) 49
pipenvによる仮想環境の構築・実行 • 実際に仮想環境からパッケージを削除してみる – 「pipenv uninstall numpy」で仮想環境からアンインストール • PipfileやPipfile.lockも書き換わる numpyが仮想環 境からアンインス トールされた 50
pipenvによる仮想環境の構築・実行 • 実際に仮想環境からパッケージを削除してみる – numpyを使うスクリプトを実行 • numpyがインストールされていなければエラーが出るが・・・? ここで 実行停止 numpyがインス トールされていな いためimportでき ずエラー 51
pipenvによる仮想環境の構築・実行 • 他環境からの実行環境の再現 – requirements.txtからの環境再現 • プロジェクトディレクトリにrequirements.txtを入れて 「pipenv install –r ./requirements.txt」を実行 – PipfileまたはPipfile.lockからの環境再現 • プロジェクトディレクトリにPipfileを入れて 「pipenv install」または「pipenv install --dev」(開発用パッケージもインストール) • プロジェクトディレクトリにPipfile.lockを入れて 「pipenv sync」または「pipenv sync --dev」 (開発用パッケージもインストール) • 仮想環境にインストールされているパッケージ一覧 – Pipfileをcatやテキストエディタで見る • バージョン指定無しでインストールしたパッケージで,実際にインストー ルされたバージョン等の詳細はPipfile.lockにある 52
pipenvによる仮想環境の構築・実行 • 注意点 – 仮想環境のあるディレクトリ内のPythonファイルを右クリックメ ニューからVSCodeで開くと,仮想環境インタプリタが選べない ? なぜか同ディレクトリ内の.venv にある仮想環境のPythonを読 み込まない (表示されているのはPC本体に インストールされているPython) 右クリックメニューの 「Codeで開く」でPython ファイルを開くと・・・ 53
pipenvによる仮想環境の構築・実行 • 注意点 – ファイルではなく,まずディレクトリをVSCodeで開き,その後に VSCode上でPythonファイル開けば仮想環境インタプリタが選 択可能 仮想環境のPythonが選択可能 右クリック ディレクトリ内の何もない ところで右クリックし 「Codeで開く」でディレク トリを開く 54
目次 • PythonとVSCodeについて • VSCode+Pythonの実行環境の構築方法 – VSCodeのインストールと初期設定 – Pythonのインストールと初期設定 – VSCode+Pythonの環境構築・実行・デバッグ • pipenvによる仮想実行環境の構築方法 – 仮想実行環境とは – pipenvのインストールと初期設定 – pipenvによる仮想環境の構築・実行 • Jupyter notebookの実行環境の構築方法 – Jupyter notebookとは – Jupyter notebookのインストール – Jupyter notebookの実行 55
Jupyter notebookとは • Jupyter notebook(じゅぱいたーのーとぶっく) – ノートブックという形式のファイルにPythonスクリプトを記述 – セル毎の実行やプロット の描画などが可能で 分かりやすい – スクリプトを書いてすぐ に実行し結果を確認可 • 初学者のPython習得や 研究の実験履歴などに 重宝される • コードの共有にも便利 – 昔はiPython notebook という名称だった • ノートブックファイルの 拡張子(.ipynb)にその 名残がある 56
Jupyter notebookとは • Jupyter notebookのシステム – 純正のJupyter notebookはローカル(又はリモート)サーバを 立ちあげ,ブラウザで接続することでノートブックの編集・実行 等ができる • 2019年10月より,VSCodeのPython拡張機能(p.27でインス トールしたもの)がJupyter notebookをネイティブサポート • 本資料では,pipenvで作成する仮想環境にJupyter notebookをインストールし,ノートブックファイルの作成・ 実行までを解説 57
Jupyter notebookのインストール • 仮想環境でJupyter notebookをインストールしてみる – 新規フォルダ「jupyTest」を作成し,右クリックして「Codeで開く」 – 新規ターミナルを起動し「pipenv --python 3.7」を実行 • 仮想環境にPython 3.7をインストール 58
Jupyter notebookのインストール • 仮想環境でJupyter notebookをインストールしてみる – 続いてターミナルで「pipenv install jupyter」を実行 • 仮想環境にJupyter notebookをインストール • 必要なパッケージが多くインストールされるので,少し時間がかかる 59
Jupyter notebookの実行 • 仮想環境でJupyter notebookを実行してみる – Ctrl+Shift+Pを押下し,VSCodeの「コマンドパレット」を表示 – コマンドパレットに「Python: Select」と入力し表示される 「Python: Select Interpreter to start Jupyter server」をクリック コマンド パレット 60
Jupyter notebookの実行 • 仮想環境でJupyter notebookを実行してみる – jupyTest直下の仮想環境のPythonを選択 • キャッシュに残っている他のディレクトリのPythonも見えることがあるの で注意(パスをよく確認して選択すること) 61
Jupyter notebookの実行 • 仮想環境でJupyter notebookを実行してみる – 画面左下のインタプリタ表示がjupyTestのPythonになればOK • 選択しても左下のインタプリタ表示が「Select Python Interpreter」のま まになる場合は,一度VSCodeを再起動するとうまくいく可能性あり 仮想環境 のインタ プリタが 認識され ている 62
Jupyter notebookの実行 • 仮想環境でJupyter notebookを実行してみる – Ctrl+Shift+Pを押下し,VSCodeの「コマンドパレット」を表示 – コマンドパレットに「Python: Create」と入力し表示される 「Python: Create New Blank Jupyter Notebook」をクリック 63
Jupyter notebookの実行 • 仮想環境でJupyter notebookを実行してみる – 新しいノートブックが作成される – Ctrl+Sで「test.ipynb」という名前を付けて保存 • 拡張子ipynbはJupyter notebookのファイル拡張子 64
Jupyter notebookの実行 • 仮想環境でJupyter notebookを実行してみる – スクリプトを記述し,Shift+エンターでそのセルを実行 • 実行結果はセルのすぐ下に表示される ここがnot connectedになっていたらJupyter がPythonインタプリタを認識できていない セル (コードの ひとまと まり) セルを新 しく追加 65
Jupyter notebookの実行 • 仮想環境でJupyter notebookを実行してみる – Jupyterの変数はセルごとではなく,複数のセルにまたがってい る点に注意 変数を全てクリアするには,このボタンで Jupyterのカーネルをリセットする必要がある 変数cは2番目 のセルで定義 されているが, 以降も保存さ れたままなの で4番目のセル で読み出しても 表示される 66
さいごに • Pythonは簡単な言語だが環境構築が一番大変 • ここで解説した内容も,ソフトウェアが変われば大きく変 わるので注意 – VSCodeのメジャーアップデートなど 67