LoginSignup
8
10

More than 1 year has passed since last update.

Anaconda環境をVSCodeで使う最小構成

Posted at

Pythonで遊んでみようと思って、有名なJupyter NotebookかVSCodeのどちらをメインに使おうか考えていたら、こちらの記事に出会った。

心惹かれたのは、

  • .pyもJupter Notebookのように扱えること
  • .ipynbはgitで管理できなくても、.pyならgitで管理できること

環境

  • Windows 11
  • 元々使っていた VSCode
    image.png

この環境から、Pythonのインストールを含めた環境構築を行う。
ちなみに、Powershell上で
python
と打つとMicrosoft Storeがポップアップするが、このインストールは必要ない。

image.png
image.png

結論

  1. Anacondaをインストール。インストール時に、Pathの設定はしない
  2. Anaconda Promptなどで仮想環境を構築
  3. Anaconda Navigatorから接続したい仮想環境を選択
  4. Anaconda NavigatorからVSCodeを起動

※VSCode上でコードを走らせる環境の接続先は変更できるが、パッケージのインストールなど、環境自体の変更はAnaconda Navigatorで選択していたものに対してしかできない。
※Windowsのスタートメニューから開いたVSCodeではどの環境についてもパッケージのインストールなどはできない。コードの実行はできる。

Anacondaのインストール


image.png

から、Anaconda3-2022.10-Windows-x86_64.exeをダウンロード&実行。

image.png

image.png

image.png

image.png

image.png

image.png

image.png

ウェブページを開く最後のチェックマークを外してFinish
image.png

Windowsのスタートメニューに anaconda の各ソフトが表示されるようになった。
image.png

VSCodeに接続せず、単純にAnacondaを使ってみる

Anaconda Navigatorを起動。
新しいバージョンが出ているらしいのでUpdate

image.png

Anaconda Navigatorがbusy状態だといわれるが、Yesで終了
image.png

image.png

image.png

インストールが終わると Navigator を起動するか聞かれるので、Launchをクリック
image.png

起動したNavigatorの様子。Jupyter Notebookを開いてみる。
image.png

image.png

右上のNewからPython3を選択して、新規スクリプトを作ってみる。
image.png

image.png

import sys
sys.version_info

をはじめのセルに記入して実行。
Pythonのバージョンが3.9.13であることがわかる。
image.png

Anaconda Promptで仮想環境を作ってみる

conda env list

で存在する環境のリストが得られる。初期状態ではbaseしか存在しなく、
pythonを読み出すことで、そのバージョンが先ほども表示された3.9.13であることがわかる。
image.png

それでは以下のコマンドで仮想環境を構築する。

conda create --name <仮想環境の名前> python=<指定バージョン> <インストールするパッケージ?>

今回の設定はこのよう。

conda create --name env310 python=3.10 numpy

※ python=3.5では後々の、VSCodeでinteractive-1の接続先を3.5に変更する際にwin32apiをインストールできないというエラーが出たため、3.10にしている。ほかのバージョンは試していない。

ダウンロードやインストールされるパッケージが表示され、
実行するかどうかがProceed ([y]/n)?で聞かれる。yを打つ。
image.png

改めてconda env listで環境を確認すると、env310が追加されている。
image.png

conda activate env310で仮想環境に接続できる。
conda env listの*印の位置も変更されている。
pythonを起動すると、バージョンが指定した3.10.Xになっていることが確認できる。
image.png

VSCode上でスクリプトを指定した仮想環境の上で実行する

Anaconda Navigatorではなく、windowsのスタートメニューからVSCodeを開き、適当なフォルダ(今回はD:\python-test)でターミナルを開いて、condaを呼び出す。
Pathが通っていないと怒られる。

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

PS D:\python-test>

image.png

Anaconda NavigatorからVSCodeを起動する。すると、CondaへのPathが通っている。
これ以降はすべてAnaconda NavigatorからVSCodeを起動する。
VSCodeでconda env listを実行すると、先ほど作ったenv310が表示される。
しかし先ほどのAnaconda Promptと異なるのは、先頭に(base)が書かれていないことである。
image.png

conda activate env310
conda env list

を実行しても、env310環境に移行したように思える出力は得られない。

image.png

とりあえず、testcode.pyを作ってみる。
#%%でJupyter Notebookのようになると聞いていたが、ならない。

image.png

デバックなしで実行しようとしても、拡張機能のインストールを求められ、実行することができない。
どうやら拡張機能のインストールはどうしても必要らしい。
image.png

image.png

だからMicrosoft純正のPythonをインストールする。
image.png

すると一緒に
JupyterやPylanceという拡張機能もインストールされた。
一緒にインストールするならそう書いてくれればいいのに。
image.png

ただし、変化は劇的で、#%%の上に、セルの実行と表示されるようになった。
image.png

拡張機能をインストールすると、ターミナルを起動するたびに

C:/Users/shiga/anaconda3/Scripts/activate
conda activate base

が実行されるようになる。
image.png

セルの実行をクリックすると、そのセルが実行され、
pythonのバージョンが3.9.13であることがわかる。
image.png

.pyのファイルを開いているときだけタスクバーに表示される、Python Interpreterをクリックする。
使用可能なpythonが表示される。env310の3.10.9が含まれているから、それを選択。
image.png

しかし、testcode.pyで出力されるpythonバージョンは変わらない。
なぜなら、右上のinteractive-1ウィンドウの接続先がbaseになっているからである。
image.png

クリックしてするとドロップダウンが現れるから、
別のカーネルを選択をクリック。
image.png

Python環境をクリック。
image.png

するとenv310が選択できるから、env310を選択。

image.png

するとこのような警告が現れる。
env310環境にはnumpyしかインストールされていないから、jupternotebook用のパッケージをインストールする必要があるらしい。インストールする。
image.png

プログレス画面を経て、
image.png

このような状況になれば、正常にenv310に接続できている。
image.png

接続後にtestcode.pyを実行すると、バージョンが3.10.9で実行されていることが分かる。
これでコードを実行するカーネルを選択することが出来るようになった。
しかし、依然としてターミナルが接続しているのはbaseであり、env310ではない。
image.png

接続しようとしても、できない。
image.png

VSCodeを閉じないまま仮想環境をカスタマイズする

ターミナル上ではenv310に接続することが出来ないので、
仮想環境に足りないパッケージをインストールするときに困る。
testcode.pyに新しいセルとして、

# %%
import numpy as np
print('numpyはimportできる')
import pandas as pd
print('pandasはimportできない')
# %%

を追加する。numpypandasをインポートするコードである。
env310環境ではnumpyしかインストールされていないため、pandasがインポートできない。
image.png

これは、anaconda promptでenv310環境に接続した後、

conda install pandas

を実行することで解決する。
image.png
image.png

VSCodeを閉じて、仮想環境をカスタマイズする

VSCode上で、接続する環境をenv310に変えられなかったのは、Anaconda Navigatorがbaseに接続した状態でVSCodeを起動していたからである。
image.png

env310をクリックして、接続先を入れ替える。
image.png

なお、env310にはjupyter notebookはインストールしていないので、Anaconda Navigator上ではLaunchボタンではなく、Installボタンが表示される。
image.png

VSCodeを起動すると、デフォルトで実行されるコードが

C:/Users/shiga/anaconda3/Scripts/activate
conda activate env310

に変更されている。
image.png

conda env listで接続先を確認すると、env310に接続されていることが分かる。
image.png

env310にはまだインストールされていないパッケージであるmatplotlibをimportしようとすると、エラーが起きる。

# %%
import matplotlib as mp

image.png

それではenv310に接続したターミナル上で、

conda install matplotlib

を実行する。無事インストールすることが出来た。

image.png
image.png

改めて、matplotlibをimportするセルを実行すると、エラーなくimportすることが出来る。
image.png

試しにサインカーブを描いてみる。上手くいった。
image.png

参考サイト

8
10
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
10