【Windows】VS Code + Anaconda で Python の開発環境を用意する


はじめに

【世界で 18 万人が受講】実践 Python データサイエンスの導入部分で、開発環境として Anaconda + Jupyter Notebookを推薦している。
しかし、慣れ親しんだ VSCode で開発を行いたいため、VSCode + Anaconda で開発環境を整えた。

古い記事だとAnaconda Navigator から VSCode アプリをインストールしているが、2021/01 時点の Anaconda では VSCode の Python Extension から Anaconda を指定できるため、必要なさそう。

尚、以下を参考にした。

環境

Windows: バージョン 10.0.18363 ビルド 18363
Anaconda: Anaconda3-2020.11
VSCode: Version 1.52.1

手順

1. Anacondaのインストール

2021/01 時点で Python3.8 を使用している。

2. Python Extensionのインストール

Ctrl + P > ext install Python

3. インタプリタの設定

  1. 適当なディレクトリを VSCode で開き、.pyのファイルを作成する
  2. Ctrl + Shift + P > Python: Select Interpreter > Python 3.X.X YY-bit(conda)
  3. このようになれば OK

4. ターミナルで Python を実行する

  1. ファイルに以下のように入力
   import sys
   print(sys.version)
  1. Python を実行
    • まだターミナルを立ち上げてない場合
      • Ctrl + Shift + P > Python: Run Python File in Terminal
    • 既にターミナルを立ち上げている場合、上で設定したインタプリタで Python を実行するため、新しいターミナルを用意する
      • Ctrl + Shift + P > Terminal: Create New Integrated Terminal
      • Ctrl + Shift + P > Python: Run Python File in Terminal
  2. Terminal に 3.8.5 (default, Sep 3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)]と表示される

※Windows 環境の場合、Anaconda はデフォルトで PATH を通さないため、conda activate baseが失敗する。そのため、以下の方法で conda コマンドが実行できるようにする。

5. デバッグ

参考: Python debug configurations in Visual Studio Code

launch.json の作成

Ctrl + Shift + P > Debug: Open launch.json > Python > Python File

{
  // Use IntelliSense to learn about possible attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Python: Current File",
      "type": "python",
      "request": "launch",
      "program": "${file}",
      "console": "internalConsole"
    }
  ]
}

Ctrl + Shift + P > Debug: Start Debugging でデバッグ可能になる。

6. conda 環境の追加

参考: Conda environments

conda createする際、 python=X.Xでインタプリタを指定すると、指定したインタプリタを VSCode で使えるようになる。

  1. conda createで任意の環境を作成する
  • 上述した通り、インタプリタを指定する必要がある。指定しない場合、作成したインタプリタがPython: Select Interpreterに出てこない(手動で activate は可能) sh conda create -n env-01 python=2.7
  1. Ctrl + Shift + P > Python: Select Interpreter > Python 2.7.X YY-bit(conda) を選択

トラブルシューティング

ターミナルで conda コマンドが使えない

PS C:\workspace> conda activate base
conda : 用語 'conda' は、コマンドレット、関数、スクリプト ファイル、
または操作可能なプログラムの名前として認識されません。
名前が正しく記述されていることを確認し、パスが含まれている場合は
そのパスが正しいことを確認してから、再試行してください。
発生場所 :1 文字:1
+ conda activate base
+ ~~~~~
    + CategoryInfo          : ObjectNotFound: (conda:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

上記のエラー解消のため、Powershell で conda コマンドが使えるようにする

1. Anaconda の起動スクリプトを確認する

  1. Windows key > anaconda powershell を入力
  2. 右クリック > ファイルの場所を開く
  3. 右クリック > プロパティ
  4. リンク先をコピー %windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "& 'C:\Users\user\anaconda3\shell\condabin\conda-hook.ps1' ; conda activate 'C:\Users\user\anaconda3' "

2. VSCode のターミナルの起動時引数に、上記の引数を渡すようにする

  1. Ctrl + Shift + P -> Preferences: Open Settings(JSON) or Preferences: Open Workspace Settings(JSON)
  2. "terminal.integrated.shellArgs.windows"に上記の引数を配列で指定する
{
  "terminal.integrated.shellArgs.windows": [
    "-ExecutionPolicy",
    "ByPass",
    "-NoExit",
    "-Command",
    "& 'C:\\Users\\user\\anaconda3\\shell\\condabin\\conda-hook.ps1'; conda activate 'C:\\Users\\user\\anaconda3'"
  ]
}

参考: Working with Anaconda in Visual Studio Code

参考