VSCode で初回実行時に謎エラー

VSCode で Python を独習しているのだけど、最近、起動後の初回実行時のみ謎エラーが出るようになった。

VSCode Error
PS D:\\Users\\hotta\\99_PythonBootCamp> C:/Users/hotta/Anaconda3/Scripts/activate
PS D:\\Users\\hotta\\99_PythonBootCamp> conda activate base
conda : 用語 'conda' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。

発生場所 行:1 文字:1
+ conda activate base
+ ~~~~~
    + CategoryInfo          : ObjectNotFound: (conda:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

2回目以降は出なくなるのだけど、いずれ仮想環境も勉強しないといけなくなるので調べてみた。

conda というコマンドがないと言っている。conda は Anaconda に含まれる管理コマンドらしい。

以前『みんなのPython第4版』を見ながらチュートリアルをやったことがあって、その本の手順の中で Anaconda をインストールした(らしい、以下同文)。

Anaconda は、Python に対してデータサイエンス向けのパッケージ等を提供するプラットフォームとのこと。Anaconda の中に Python 本体を含めて配布しているので、本家で配っている Python とは競合する。

今回やっているチュートリアルは Python Boot Camp テキストだけど、この前提事項では Python 本家サイトから Windows インストーラーをダウンロードして入れることになっている。

ちなみに Windows10 では、PowerShell で Python とタイプすると、Python が入っていない場合は自動的に Microsoft Store が起動して、そこから1クリックで Python インストーラーをダウンロードできるようになっている(ように見える)ので、この手順でインストールした。

Microsoft Store

つまり、自分の場合、先に Anaconda を入れて、その後に Microsoft Store 版で上書きした、ということになる。

(2020/02/17 追記)Python の偉い人に聞いたところ、Microsoft Store でインストールできる Python は本家 Python “ではない” とのこと。このため、もともとこの記事で本家 Python と書いていた箇所は Microsoft Store 版 Python(以下ストア版)に訂正しました。

結果的に、現在システムに以下の2つの Python が同居している状態となっている。

・Anaconda3 (C:/Users/ユーザ名/Anaconda3/python.exe)
・ストア版 Python → どこ?

PS D:\Users\hotta\99_PythonBootCamp> which python
C:\Users\hotta\AppData\Local\Microsoft\WindowsApps\python.EXE

これにより、ストア版 Python は AppData 配下にインストールされ、システムの PATH はこのストア版を向いていることがわかる。

pyenvが必要かどうかフローチャート』を読んで考えた結果、そのままストア版を使うことにした。後は VSCode をこれにあわせてやればよい。

長くなってしまったが、対応方法は以下の通り。

  • VSCode>管理>コマンドパレット>”Python: インター” で検索
  • 『Python: インタープリターを選択』をクリック
Python: Select Interpreter
  • Python 3.6.4 64-bit (‘base’: conda)
  • Python 3.7.6 64-bit

明らかに上のものが選ばれていて初期化に失敗しているので、下のもの(condaなしの方) を選択すれば OK 。

今回は一応解決はしたものの、今後いろいろとハマりそうな気配‥。

(2020/02/17 追記)その後、ある程度手順を確立できたので、VSCode+venvとして記載。

タイトルとURLをコピーしました