Windows版Anacondaをインストールしてみる

f:id:ts0818:20210106220633p:plain

アナコンダ (Anaconda)

アナコンダ (曖昧さ回避) - Wikipedia

⇧ 紛らわしいな~、ということで、今回は「Anaconda(Pythonディストリビューション)」ですかね。

By the way、ヘビのアナコンダって

アナコンダ」は、スリランカに分布するアミメニシキヘビ(学名 Python reticulatus)の現地名であるシンハラ語の hena-kanda もしくはタミル語の anaik-konda に由来する。南アメリカに生息するヘビには誤ってつけられた。

アナコンダ - Wikipedia

スリランカに生息してるものだけを指すみたいね。映画とかでアマゾンとかでアナコンダが出てきたりする場合は、嘘ってことですな。

はい、脱線しました。

今回は、

Anacondaは、 科学計算データサイエンス機械学習アプリケーション、大規模データ処理、予測分析など)のためのPythonおよびR言語無料のオープンソースディストリビューションであり、パッケージ管理とデプロイメントを簡略化することを狙ったものである。パッケージのバージョンは、パッケージ管理システム conda によって管理される

Anaconda (Pythonディストリビューション) - Wikipedia

⇧ をWindows(私が使ってるのは、Windows 10 Home 64bit版です)にインストールしていこうって話ですね。

解決できてない部分が多いので、反面教師的に参考いただければと。なので、お時間のある方のみご照覧ください。

レッツトライ~。

 

Windows版のAnacondaをインストールしてみる

まぁ、

www.python.jp

⇧ 公式の通りにインストールすれば問題ないでしょう、ということで、インストールしてみる。

www.anaconda.com

⇧ にアクセスして、

「Download」をクリック。

f:id:ts0818:20201229131654p:plain

自分は、パソコンとしてはWindows 10 Homeの64bit版を使用しているので、「Windows」の「64-Bit Graphical Installer(457 MB)」を選択しました。

f:id:ts0818:20201229131757p:plain

インストーラーがダウンロードされたら、ダブルクリックでインストーラーを起動。

f:id:ts0818:20201229131937p:plain

インストーラーが起動されたら、「Next>」押下で。 

f:id:ts0818:20201229132106p:plain

「I Agree」を押下で。

f:id:ts0818:20201229132228p:plain

「Just Me(recommended)」を選択して「Next>」を押下しました。

f:id:ts0818:20201229132308p:plain

デフォルトの状態で「Next>」押下しました。

f:id:ts0818:20201229132423p:plain

「Register Anaconda3 as my default Python 3.8」のチェックは外しました。(チェック外すと、環境変数にパスが追加されないらしいので、環境変数にパスを追加したい場合は、チェック付けたままにするか、後から自分で環境変数にパスを追加するかする感じになるかと)

ちなみに、

qiita.com

Windows Anaconda の base が 通している PATH を調べると、以下の7つになっています。

Anaconda3;
Anaconda3\Library\mingw-w64\bin;
Anaconda3\Library\usr\bin;
Anaconda3\Library\bin;
Anaconda3\Scripts;
Anaconda3\bin;
Anaconda3\condabin;

Anaconda がやっと PowerShell に公式対応した - Qiita

⇧ 上記サイト様によりますと、Windows版のAnacondaの場合、環境変数へ追加するパスが多いのですが、「Register Anaconda3 as my default Python 3.8」のチェックを付けたままにしたほうが良いのかどうか分からんですな。

docs.conda.io

When installing Anaconda, you have the option to “Add Anaconda to my PATH environment variable.” This is not recommended because the add to PATH option appends Anaconda to PATH. When the installer appends to PATH, it does not call the activation scripts.

https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#activating-an-environment

On Windows, PATH is composed of two parts, the system PATH and the user PATH. The system PATH always comes first. When you install Anaconda for Just Me, we add it to the user PATH. When you install for All Users, we add it to the system PATH. In the former case, you can end up with system PATH values taking precedence over our entries. In the latter case, you do not. We do not recommend multi-user installs.

https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#activating-an-environment

⇧ condaのプロジェクトのドキュメントだと「Register Anacondax as my default Python x.x」については特に言及が無いんよね...

Pythonの日本の公式サイトだと、2021年1月5日(火)時点で、

⇧ キャプチャ画像はチェック外してインストールってなってますね。

というわけで、公式の情報で非推奨な方法を広めるわけはないと信じて公式通りに、「Register Anacondax as my default Python x.x」のチェックも外した状態で「Install」を押下しました。 (環境変数へのパスの追加を良しなに済ませたい場合は、チェック付けたままにしたほうが良いかも)

f:id:ts0818:20201229132911p:plain

f:id:ts0818:20201229133015p:plain

インストール完了したみたい。試しに「Show details」を確認。

f:id:ts0818:20201229133456p:plain

 Windows版のAnacondaは、「pythonw.exe」ってので動いてるのかね?

そして、ここで表示されるログについては特に保存されないっぽいのよね、普通、「Installation Complete」した時のログとか保存するもんだと思うんだが、Windows版のAnacondaの場合は、この時のログは保存されないっぽい。

「Next>」押下で。

f:id:ts0818:20201229133620p:plain

「Next>」押下で。

f:id:ts0818:20201229134406p:plain

チェック外しても良かったかもしらんが、デフォルトの状態で「Finish」押下しました。(チェック入ってると、ブラウザでページが開かれるけど無視しました。)

f:id:ts0818:20201229134449p:plain

Windowsのホームから「Anaconda Navigator(anaconda3)」 って選べるので、押下で。

f:id:ts0818:20201229134652p:plain

 「ANACONDA NAVIGATOR」ってのが起動します。

f:id:ts0818:20201229134731p:plain

ここから、自分の使いたいアプリを起動できるみたい。試しに、「Jupyter Notebook」を起動してみます。 

f:id:ts0818:20201229134859p:plain

起動されました。

f:id:ts0818:20201229135116p:plain

 

Windows版のAnacondaでPython仮想環境を作成

通常のPython環境とAnacondaのPython環境が混ざると宜しくないようなので、AnacondaのPython仮想環境を作成していきます。

ちなみに、デフォルトで「base」って仮想環境が用意されてるみたい。

f:id:ts0818:20210105093247p:plain

 

qiita.com

⇧ 上記サイト様を参考にさせていただきました。

まずは、Anaconda にあるすべてのPython仮想環境を確認で。(自分は環境変数にパスを通してなかったので、フルパスでコマンド実施しちゃってます)

[Anacondaをインストールしたディレクトリ]\_conda.exe info -e   

f:id:ts0818:20210104153900p:plain

情報を絞らない場合は、

[Anacondaをインストールしたディレクトリ]\_conda.exe info

f:id:ts0818:20210104154626p:plain

そんでは、AncondaでPython仮想環境を作成。 

f:id:ts0818:20210104155807p:plain

f:id:ts0818:20210104155842p:plain

f:id:ts0818:20210104160018p:plain

⇧ 上記のコマンドプロンプトが固まったので、新しくコマンドプロンプトを起動して、Anaconda のPython仮想環境を確認したところ、

f:id:ts0818:20210104160502p:plain

⇧ デフォルトだと「C:\Users\[ユーザー名]\.conda\envs」に作成されるらしい。

f:id:ts0818:20210104160826p:plain

ただ、ネットの情報を確認してると、 

blog.sgry.jp

qiita.com

⇧ 上記サイト様によりますと、「C:\Users\[ユーザー名]\.conda\envs」以外に作成することもできるらしい。

というか、デフォルトのパス(ここでは「C:\Users\[ユーザー名]\.conda\envs」)だと、各々の環境に依存してしまうということで、パスを変えてPython仮想環境を作成するのが良いそうな。

Anaconda でPython仮想環境を作り直したい、ということで、

teratail.com

⇧ 上記サイト様を参考に削除で。

f:id:ts0818:20210104161708p:plain

f:id:ts0818:20210104161855p:plain

Anaconda で作成したPython仮想環境が削除できました。

f:id:ts0818:20210104161959p:plain

では、改めて。

 パスを指定してPython仮想環境を作成。

f:id:ts0818:20210104162638p:plain

f:id:ts0818:20210104162714p:plain

f:id:ts0818:20210104162749p:plain

Anaconda でPython仮想環境が、「C:\Users\[ユーザー名]\.conda\envs」以外に作成できました。

f:id:ts0818:20210104163051p:plain

f:id:ts0818:20210104162952p:plain

そして衝撃の事実...

nodaki.hatenablog.com

⇧ 上記サイト様によりますと、Python仮想環境を作成時にライブラリ「jupyter」もインストールしておく必要があるみたい。

というわけで、再度、Anaconda で作成したPython仮想環境を削除で。

「prefix」のオプションを付けてPython仮想環境を作成した場合は、削除する時も「prefix」オプションを付ける感じになるそうな。

いざ。

f:id:ts0818:20210104164743p:plain

f:id:ts0818:20210104164842p:plain

では、改めて、Anaconda でPython仮想環境を作成。

f:id:ts0818:20210104165438p:plain

f:id:ts0818:20210104165549p:plain

f:id:ts0818:20210104180644p:plain
⇧ で、Python仮想環境ができたのはできたのだけど、

どうにも、「prefix」オプション指定して作成したPython仮想環境が「ANACONDA NAVIGATOR」のほうで上手いこと認識されてないっぽい...

どういうことかと言うと、永遠に切り替わらんというね...

f:id:ts0818:20210105095930p:plain

⇧ 永久にLoading中というね...

う~ん、

qiita.com

YAMLファイルでPython仮想環境を作成したほうが良かったのかな?

condaコマンドの「prefix」オプションを指定すると、「name」オプションが付けれないから、「環境名」が付かないのが宜しくないんじゃないかな、って気がするんよね。

ただ、

docs.conda.io

There are a few things to be aware of when placing conda environments outside of the default envs folder.

  1. Conda can no longer find your environment with the --name flag. You’ll generally need to pass the --prefix flag along with the environment’s full path to find the environment.

  2. Specifying an install path when creating your conda environments makes it so that your command prompt is now prefixed with the active environment’s absolute path rather than the environment’s name.

https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#specifying-a-location-for-an-environment

⇧ 特に、「ANACONDA NAVIGATOR」から読み込めなくなります、とは記載が無いしな、「Conda can no longer find your environment with the --name flag.」って部分が気にはなるけども...「ANACONDA NAVIGATOR」がブラックボックス過ぎて分からんな...

なんか、

packagecontrol.io

Anaconda behaves slowly and jsonserver crashes

If you are in POSIX systems (Linux or OS X) take a look at the owner of the anaconda's jsonserver log files, they must be owned by your user or the jsonserver would be unable to start up. Log files can be found in: * GNU/Linux: ~/.local/share/anaconda/logs * OS X: ~/Library/Logs/anaconda * Windows: %APPDATA%\Anaconda\Logs

https://packagecontrol.io/packages/Anaconda

⇧ 上記サイト様によると、Windows版のAnacondaの場合は「%APPDATA%Anaconda\Logs」って場所にログファイルっぽいものがありますと。

f:id:ts0818:20210105154950p:plain

自分の環境ですと、「C:\Users\Toshinobu\AppData\Roaming\.anaconda\navigator\.anaconda\navigator\logs\navigator.log」ってファイルがあるにはあったんだけど、目ぼしい情報は無いというね。

f:id:ts0818:20210105154105p:plain

 

あと、気になったのが、

qiita.com

フォルダーを探してみると、C:\Users\USERNAME\AppData\Roaming\.anaconda\navigator\.anaconda\navigator\anaconda-navigator.ini を発見!この中に、first_time_offline = True ってあるのに無視してる!

このiniファイル中のoffline_mode = False をoffline_mode = Trueに変更してからAnacoda Navigatorを起動したら、無事起動し解決した。

Anacoda Navigatorが立ち上がらなくなった - Qiita

⇧ 上記サイト様によりますと、プロキシでネットワークが断絶された状況だから、「conda」コマンドの結果が反映されてないだけなのか、ネットワーク関係なく「ANACONDA NAVIGATOR」の挙動を変更するには「anaconda-navigator.ini」を直接編集しないといけないのかが分からんというね...

「name」オプション付きで、デフォルトで用意されてる「envs」ディレクトリ以外の場所にAnaondaのPython仮想環境を作成するには、

stackoverflow.com

conda config --append /path/to/directory/containing/env. Running this will make conda look for the environment files in specificed folder. – Mehul Jain Apr 4 '18 at 6:19

https://stackoverflow.com/questions/49638329/how-to-create-conda-env-with-both-name-and-path-specified

⇧ 上記サイト様によりますと、オプションの同時指定は無理っぽいので、パスについては「conda config」で追加しろってことなのかね。

で、「conda config」って何?

docs.conda.io

The conda configuration file, .condarc, is an optional runtime configuration file that allows advanced users to configure various aspects of conda, such as which channels it searches for packages, proxy settings, and environment directories. For all of the conda configuration options, see the configuration page.

https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html#using-the-condarc-conda-configuration-file

The .condarc file is not included by default, but it is automatically created in your home directory the first time you run the conda config command. To create or modify a .condarc file, open Anaconda Prompt or a terminal and enter the conda config command.

https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html#creating-and-editing

⇧「.condarc」っていう「conda」コマンドの設定ファイルを作ってくれるみたいね。

The .condarc file is not included by default, but it is automatically created in your home directory the first time you run the conda config command. 」って言ってるから、「conda config」を実施すれば「home directory」にできるらしい。

自分の場合は、「C:\Users\[ユーザー名]」に「.condarc」ファイルができてました。

f:id:ts0818:20210105115418p:plain

「.condarc」ファイルの中身は、こんな感じでした。

f:id:ts0818:20210105115203p:plain

 

で「.condarc」ファイルはAnaondaからはどうやって検索されるのか?

Conda looks in the following locations for a .condarc file:

if on_win:
 SEARCH_PATH = (
     'C:/ProgramData/conda/.condarc',
     'C:/ProgramData/conda/condarc',
     'C:/ProgramData/conda/condarc.d',
 )
 else:
 SEARCH_PATH = (
     '/etc/conda/.condarc',
     '/etc/conda/condarc',
     '/etc/conda/condarc.d/',
     '/var/lib/conda/.condarc',
     '/var/lib/conda/condarc',
     '/var/lib/conda/condarc.d/',
  )

 SEARCH_PATH += (
     '$CONDA_ROOT/.condarc',
     '$CONDA_ROOT/condarc',
     '$CONDA_ROOT/condarc.d/',
     '~/.conda/.condarc',
     '~/.conda/condarc',
     '~/.conda/condarc.d/',
     '~/.condarc',
     '$CONDA_PREFIX/.condarc',
     '$CONDA_PREFIX/condarc',
     '$CONDA_PREFIX/condarc.d/',
     '$CONDARC',
 )

CONDA_ROOT is the path for your base conda install. CONDA_PREFIX is the path to the current active environment.

https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html#searching-for-condarc

⇧ 少なくとも、上記の場所じゃないと探してくれないってことなのかね?

ん?

ってことは、Windowsの場合は「home directory」にある「.condarc」ファイルって無視されるってことかね?

ドキュメントのif文の条件を見る限り、Windows環境の場合は、

  • 'C:/ProgramData/conda/.condarc'
  • 'C:/ProgramData/conda/condarc'
  • 'C:/ProgramData/conda/condarc.d'

の3つのディレクトリしか探さないよ、っていうように見えるんだが...

なのに、「conda config」を初回実行時に「.condarc」ファイルは「home directory」に作成されるってことみたいですし、

teratail.com

一応、環境変数にあります。
%HOMEDRIVE%%HOMEPATH%

変更していなければ、

HOMEDRIVE=C:
HOMEPATH=\Users\ユーザ名

Windows - windowsのホームディレクトリ|teratail

⇧ ってことみたいなので、「C:\Users\[ユーザー名]」に作成される「.condarc」ファイルは参照されないってことになりそうね...

Note

.condarc file can also be used in an administrator-controlled installation to override the users’ configuration. See Administering a multi-user conda installation.

Windows - windowsのホームディレクトリ|teratail

⇧ ってのも気になりますな、Anaonda使う気が起きない...

 

AnacondaのPython仮想環境とJupyter Notebookを紐づけ

Anacondaで作成したPython仮想環境を、Anaconda の「Jupyter Notebook」で利用するには、Anacondaで作成したPython仮想環境に「environment_kernels」ってのをインストールして、「Jupyter Notebook」で「config」ファイルを作成して、Anacondaで作成したPython仮想環境のパスを追記してあげる必要があるみたい。

kazusa-pg.com

⇧ 上記サイト様を参考にさせていただきました。

というわけで、まずは、Anacondaで作成したPython仮想環境を有効にします。

はい、エラー。

f:id:ts0818:20210104185304p:plain

⇧ 「conda init [SHELL_NAME]」すれば万事OKよ、ということみたいね。

で、シェルの確認方法ですが、

japan-challenge.net

⇧ 上記サイト様によりますと、Linux環境は載っけてくれてます。

Windowsの場合はどうするんだろう?って思ったら、

github.com

under cmd.exe
c:\> echo %COMSPEC%
output C:\Windows\system32\cmd.exe

https://github.com/Corsaair/redtamarin/issues/27

⇧ ってな感じで、「%COMSPEC」 って値を確認すれば良いらしい。

Wikipediaさんによりますと、 

COMSPEC or ComSpec is one of the environment variables used in DOSOS/2 and Windows, which normally points to the command line interpreter, which is by default COMMAND.COM in DOS, Windows 95, 98, and ME or CMD.EXE in OS/2 and Windows NT. The variable name is written in all-uppercase under DOS and OS/2. Under Windows, which also supports lowercase environment variable names, the variable name is COMSPEC inside the DOS emulator NTVDM and for any DOS programs, and ComSpec under CMD.EXE.

https://en.wikipedia.org/wiki/COMSPEC

⇧「command line interpreter」の環境変数ですと。

で、「シェル」のWikipediaの説明で、

⇧ って「コマンドプロンプト」も「シェル」という扱いになるらしいってことで、

f:id:ts0818:20210104195913p:plain

コマンドプロンプトを使ってるてことになるので、コマンドプロンプトで「conda init cmd.exe」 を実施すれば良いってことみたいね、ただ、影響範囲が分からないから怖いんだけど。

実施してみた。

f:id:ts0818:20210104200857p:plain

で、上記のコマンドプロンプトを閉じて、新しくコマンドプロンプトを起動したところ、はい、「指定されたパスが見つかりません。」とかなってるし...

f:id:ts0818:20210104201137p:plain

で、調べたところ、

teratail.com

Windowsの「レジストリ」に書き込まれちゃってるみたい...

Anacondaどうしようもねぇ、環境破壊者かっつうの...

致し方ないので、「レジストリ」を確認で。

f:id:ts0818:20210104201749p:plain

で、調べてみたところ、やってくれてますよ、Anacondaさんが!

"C:\Users\TOSHIN~1\AppData\Local\Temp\_MEI207562\condabin\conda_hook.bat"

f:id:ts0818:20210104203405p:plain

で、これがまた本当に分かり辛いんですが、

systemmanager.ru

answers.microsoft.com

⇧ 上記サイト様によりますと、そもそも、デフォルトの状態だと「AutoRun」 てキー自体も存在しないらしいのね。

「種類」も「REG_EXPAND_SZ」ってなってて、「AutoRun」の説明だと「種類」は「REG_SZ」 ってなってるところを見ると、必要ないんじゃないかなということで、Anacondaが勝手に作成したっぽいものは削除しました。

f:id:ts0818:20210104204150p:plain

f:id:ts0818:20210104204245p:plain

コマンドプロンプト起動時のエラーが消えました。

f:id:ts0818:20210104204329p:plain

とりあえず、

teratail.com

PATHにC:\Users\ユーザー名\anaconda3\condabinも含めたら大丈夫だと思います。
(むしろ、condabinさえ入れておけば、conda activateできるはずです)

Python - コマンドプロンプトでconda activateを実行する方法|teratail

⇧ ってことみたいね...Anacondaカオス過ぎるでしょ...

何がカオスかって、

f:id:ts0818:20210104211915p:plain

f:id:ts0818:20210104212319p:plain

何故に、

  • C:\Users\[ユーザー名]\anaconda3\condabin\activate.bat
  • C:\Users\[ユーザー名]\anaconda3\Scripts\activate.bat

って、2つ用意してるの?って思ったら、

  • C:\Users\[ユーザー名]\anaconda3\condabin\activate.bat
  • C:\Users\[ユーザー名]\anaconda3\Scripts\activate.bat
  • C:\Users\[ユーザー名]\anaconda3\Lib\venv\scripts\nt\activate.bat
  • C:\Users\[ユーザー名]\anaconda3\Lib\site-packages\conda\shell\Scripts\activate.bat
  • C:\Users\[ユーザー名]\anaconda3\Lib\site-packages\conda\shell\condabin\activate.bat
  • C:\Users\[ユーザー名]\anaconda3\pkgs\conda-4.9.2-py38haa95532_0\condabin\activate.bat
  • C:\Users\[ユーザー名]\anaconda3\pkgs\conda-4.9.2-py38haa95532_0\info\test\tests\test-recipes\activate_deactivate_package\src\etc\conda\activate.d\activate.bat
  • C:\Users\[ユーザー名]\anaconda3\pkgs\conda-4.9.2-py38haa95532_0\Lib\site-packages\conda\shell\condabin\activate.bat
  • C:\Users\[ユーザー名]\anaconda3\pkgs\conda-4.9.2-py38haa95532_0\Lib\site-packages\conda\shell\Scripts\activate.bat
  • C:\Users\[ユーザー名]\anaconda3\pkgs\conda-4.9.2-py38haa95532_0\Scripts\activate.bat
  • C:\Users\[ユーザー名]\anaconda3\pkgs\python-3.8.5-h5fd99cc_1\Lib\venv\scripts\nt\activate.bat
  • C:\Users\[ユーザー名]\anaconda3\pkgs\vs2015_runtime-14.16.27012-hf0eaf9b_3\info\recipe\parent\activate.bat
  • C:\Users\[ユーザー名]\anaconda3\pkgs\vc-14.1-h0510ff6_4\info\recipe\parent\activate.bat

全部で13個の「activate.bat」が... 

本当に意図が分からないから地獄なんですけど...

っていうか、Anacondaを使わない通常のPython仮想環境の場合だと「activate.ps1」っていうPowerShell用のアクティベートのファイルがあった気がするんだけど、AnacondaってPowerShellPython仮想環境をアクティベートするのって想定されてないってことなのかね?

なんか、PowerShellで何とかしたい場合は、

note.com

⇧ ゴリゴリの力業で実現するしかなさそうみたいだしね...

qiita.com

コマンドプロンプトで回避してるパターンがありますね。

ちなみに、Anacondaのデフォルトで作成されるPython仮想環境のディレクトリ以外を指定してPython仮想環境を作成した場合(「prefix」オプションでPython仮想環境を作成した場合のことね)、アクティベートする時も、Python仮想環境のディレクトリを指定してあげないと駄目みたいね。

あとディレクトリに日本語が入っちゃってると、Python仮想環境を示す部分が壮絶に文字化けするみたいね...

Python仮想環境のディレクトリを指定しないでアクティベートした場合

C:\Users\Toshinobu\anaconda3\condabin\conda.bat activate

f:id:ts0818:20210104214915p:plain

 

Python仮想環境のディレクトリを指定してアクティベートした場合 

C:\Users\Toshinobu\anaconda3\condabin\conda.bat activate C:\Users\Toshinobu\Desktop\【学習】2020-12-1\データサイエンス\project_anconda

f:id:ts0818:20210104214846p:plain

 

お分かりいただけただろうか?

本当に、Anacondaいろいろ面倒くせぇ...

はい、めちゃくちゃ脱線しましたが、Anacondaで作成したPython仮想環境に入れたので、「Jupyter Notebook」の「Kernel」に追加してくれるらしいライブラリを、Anacondaで作成したPython仮想環境にインストールしていきます。

で、Anacondaのパスを環境変数に通しておかないと、AnacondaのPython仮想環境を有効にしていたとしても、AnacondaのPython仮想環境じゃないPythonが使用されるというね...Python仮想環境の意味ないじゃん...

[Anacondaで作成したPython仮想環境のディレクトリ]\Scripts\pip3.exe install environment_kernels

f:id:ts0818:20210104225634p:plain

ちなみ、pipのアップグレードの警告が出た場合は、以下で。

[Anacondaで作成したPython仮想環境のディレクトリ]\python.exe -m [Anacondaで作成したPython仮想環境のディレクトリ]\Scripts\pip3.exe install --upgrade pip3

f:id:ts0818:20210104225327p:plain

 

続いて、「Jupyter Notebook」の設定ファイルを作成しようとして、はい、エラー。

f:id:ts0818:20210105204052p:plain

f:id:ts0818:20210105204123p:plain

⇧ 何かモジュール見つからんとか言われるんだけど、

stackoverflow.com

I uninstalled pyzmq and re-installed it:

pip uninstall pyzmq 
pip install pyzmq

This worked for me.

https://stackoverflow.com/questions/44357025/jupyter-notebook-error

⇧ ってことみたい。

いざ。

f:id:ts0818:20210105204358p:plain

f:id:ts0818:20210105204443p:plain

改めて、

f:id:ts0818:20210105204519p:plain

f:id:ts0818:20210105204601p:plain

⇧ エラー。

stackoverflow.com

The issue seems to arise from the missing of sqlite3.dll in path ".\Anaconda\Dlls\". I solved it by simply copying that .dll file from \Anaconda3\Library\bin and put it under the path mentioned above. This was life saviour.

https://stackoverflow.com/questions/54346965/running-jupyter-notebook-from-cmd-raises-modulenotfounderror-no-module-named-py

⇧ パスが通ってないのがマズイのかね?

パスを追加しても駄目でしたけど...

f:id:ts0818:20210105212056p:plain

f:id:ts0818:20210105212142p:plain

f:id:ts0818:20210105212222p:plain

なんか、

programmersought.com

⇧ って言ってる人もおるけど、Windows環境では関係ないらしい、というか「pysqlite3」はWindows環境だとインストールできないっぽい?気がする。

 

どうやら、環境変数へのパスの追加の仕方がまずかったらしい。

新たにコマンドプロンプトを起ち上げて、環境変数の先頭に「C:\Users\[ユーザー名]\anaconda3\Library\bin;」を追加したら上手くいきました。(ってことは、Anacondaのインストール時に「Register Anacondax as my default Python x.x」のチェック付けといたほうが良かったのか?)

f:id:ts0818:20210105214924p:plain

「C:\Users\[ユーザー名]\.jupyter\jupyter_notebook_config.py」ってファイルを編集します。

f:id:ts0818:20210105220042p:plain

以下の部分を、

f:id:ts0818:20210105220530p:plain

■変更前

# c.NotebookApp.kernel_spec_manager_class = 'jupyter_client.kernelspec.KernelSpecManager'
   

■変更後

c.NotebookApp.kernel_spec_manager_class = 'environment_kernels.EnvironmentKernelSpecManager'
c.EnvironmentKernelSpecManager.conda_env_dirs=['C:/Users/[ユーザー名]/Anaconda3/envs/','prefix指定で作成したPython仮想環境のパス']

f:id:ts0818:20210105222306p:plain

で、「Jupyter Notebook」を起動してみたけれども、Kernelの変更できなかったんですが...

しかも、「C:\Users\[ユーザー名]\.jupyter\jupyter_notebook_config.py」に追記したら、「ANACONDA NAVIGATOR」から「Jupyter Notebook」が起動しなくなったし...

やっぱり、「prefix」オプションでPython仮想環境を作成したのが良くないのかしら?

taktak.jp

⇧ 上記サイト様でも「.condarc」にPython仮想環境のディレクトリを追記して、Python仮想環境を作成するときは、「prefix」オプションは使わずに「name」オプションを使ってますし。

まぁ、CUIGUIが連動せずに乖離するようなオプションってどうなのかね...

怖くて気軽にコマンドを実行できなくなるよね...

 

ちなみに、

ryota-trade.com

⇧ 「Anaconda Prompt」の実態は、「コマンドプロンプト」 っぽい?ようですかね。

公式の情報でないので何とも言えませんが、

towardsdatascience.com

⇧ 上記サイト様によりますと、「CONDA」と「ANACONDA」の関係は上図のようなイメージらしいんですと。

であれば、なおさら、「conda」コマンドの実施結果と「ANACONDA NAVIGATOR」の環境が齟齬を来すってのはマズいのでは?って思ってしまった次第です。

あと、Anacondaのデフォルトで用意されてるPython仮想環境の「base」の情報確認コマンドを実施する度に、フォルダ名が変わるのが謎過ぎる...

f:id:ts0818:20210107111625p:plain

ディレクトリは、「C:\Users\[ユーザー名]\AppData\Local\Temp\_MEI175722」だと思うんだけど...

f:id:ts0818:20210107112509p:plain

 

forum.checkmk.com

the _MEI folders contain the python runtime given by some plugins like cmk-update-agent.exe or mk_logwatch.exe. These plugins written in python and compiled. At runtime the folder will be created.

https://forum.checkmk.com/t/mei-directories-in-tmp-on-windows/17163

⇧ 上記サイト様によりますと、「_MEI」フォルダは「python」関連のファイル群が含まれてるそうな。

とは言え、「conda info -e」でフォルダ名がランダムに変わってしまう理由は依然として分からないのだが...

ひょっとして、「ANACONDA NAVIGATOR」が「環境名」のないPython仮想環境を認識できないのも、このあたりが影響してるのかね? 

ちょっと、時間ある時に調査ですかね...Anacondaもカオスだな~...

 

2021年1月11日(月)追記:↓ ここから

Anacondaの設定ファイルの「envs_dirs」の項目を確認しても、「_MEI」フォルダがランダムに変わっちゃうみたいね...

blog.sgry.jp

なお、当面は CONDA_ENVS_PATH に指定するディレクトリパスは「envs で終わる」ようにした方が良い。さもないと、コマンドプロンプトの一部として表示される仮想環境名((base) の部分)がフルパスで表示されてしまい、非常に煩わしくなる。

Anacondaの仮想環境が作られる標準のディレクトリを変更する - sgryjp.log

⇧ Anacondaのデフォルトで用意されているPython仮想環境が作成されるディレクトリ以外にディレクトリを追加する場合もお作法があるみたいで、「仮想環境名」にも影響してくるんだそうな。

「_MEI」フォルダがコマンドの実行の度に変わる挙動が気持ち悪いな...

f:id:ts0818:20210111163923p:plain

2021年1月11日(月)追記:↑ ここまで

 

今回はこのへんで。 

 

 

NG集

はい、めちゃくちゃ脱線しましたが、Anacondaで作成したPython仮想環境に入れたので、「Jupyter Notebook」の「Kernel」に追加してくれるらしいライブラリを、Anacondaで作成したPython仮想環境にインストールしていきます。

pip install environment_kernels

f:id:ts0818:20210104220004p:plain

続いて、「Jupyter Notebook」の設定ファイルを作成しようとして、はい、エラー。

f:id:ts0818:20210104221941p:plain

f:id:ts0818:20210104222018p:plain

⇧ う~ん、モジュールが足りないのかね?

kawadome.hatenablog.com

そこで、一旦、WinPythonは忘れてモジュールが見つからんとエラー吐いている「zmq」を調べると、エラーメッセージそのものズバリではないもののバージョンアップの方法がわかった。

Windows7の32bitにWinPythonを入れてJupyter Notebookを使ってみようと思うも「ImportError: DLL load failed: 指定されたモジュールが見つかりません。」と出て起動してくれない時に解決した方法 - 風待ち

⇧ ってな感じでバージョンの問題かもと。

qiita.com

⇧ numpyとかでも同じような問題があるらしい。

というか、エラーメッセージが不親切すぎるよね、「モジュールが見つかりません」じゃなくて「モジュールのバージョンアップをしてください」にするべきじゃないのかね?というボヤきが出てしまうよね...

とりあえず、まずは、Anacondaで作成したPython仮想環境のpipをバージョンアップしときますか。

f:id:ts0818:20210104223054p:plain

⇧ 既にバージョンアップされてたっぽい?

「WARNING: You are using pip version 19.3.1; however, version 20.3.3 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.」って警告は何だったんだ?

って思ったら、どうやら、使用されてた「python」がAacondaで作成したPython仮想環境のものでなかったらしい。

というわけで、アンインストールしました。

f:id:ts0818:20210104224207p:plain

f:id:ts0818:20210104224245p:plain

あと、pipのバージョンによっては、キャッシュも消せるらしい。

www.xn--ebkc7kqd.com