Edited at

Windows(M.S.)にPython3 (Anaconda3) を導入する(7つの罠)


はじめに

この記事はWindowsにpythn3(Anaconda3)を導入する際に、陥りやすい罠について2017年に記載したものです。2019年現在に想定できる導入時の各種画面は


Windows に Anaconda(python)を 2019年版

https://qiita.com/kaizen_nagoya/items/c05c0d690fcfd3402534

も合わせてご確認ください。


機械学習にpython

機械学習などでpythonを使う機会が増えてきた。

ソフトウェアの道具類(tool)の台本(script)でpythonが多かった。

Pythonを使った演習などを色々開催した。

受講者の最大の関門がWindowsへのPythonの導入だった。

Python2で動くプログラムと、Python3で動くプログラムがあり、

Python2をPython3へ変換するとよいかもしれないが、

Python2での動きを確認する必要があり、Python2が動く機材も確保したい。


Raspberry PI

RaspberryPi なら初めからpython2もPython3も入っていて簡単。

当方でおすすめしたのは、Raspberry PIを使う方法。

pythonとは別に、Raspberry PIの演習も色々開催していた。

一番簡単なのはRaspberry PIでRaspbianを使う方法だった。

python2もpython3もRaspbianに入っていて、簡単に使い分けられる。


docker

dockerは、Linux, Windows, macOSなどの上でDebian系のUbuntuなどのLinuxが動く環境を簡単に構築する道具です。下のOSの設定にあまり影響を与えずに、複数の設定の異なるLinuxを同時に動かすことができるのが大きな利点です。

http://www.docker.com


docker hub

また、構築した環境や、作業の途中の状態をdocker hubに掲載して、多くの人と同じ環境で同時に作業できるのも利点です。

https://hub.docker.com


Anaconda 公式 docker

Anacondaの公式dockerがある。dockerさえ動けば、1行ですぐにanacondaが利用できる。

https://hub.docker.com/r/continuumio/anaconda3

導入の仕方は、OSのコマンド入力から

$ docker run -v /Users/administrator/Downloads/work:/home/work  -p 8080:8080 -it  continuumio/anaconda3   /bin/bash 

-v host:docker ファイル共有。docker上でhostと共有しているファイルは、docker hubに登録する場合には、別のフォルダに複写するとよい。

-p サーバ、ブラウザなど他の機材と通信する機能を動かす。

-it 最後に書くシェルを起動する。

言語処理100本ノック 2015(python) 動作確認docker環境構築

https://qiita.com/kaizen_nagoya/items/abaf3fd0198f9f557243

dockerで作業していれば、LinuxでもWindowsでもすぐに同じ操作ができる。

次にお勧めなのはdockerを利用する方法。

最初からpythonの入ったdockerを利用する。

今は、2つのうちのどちらか、あるいは両方をお勧めしている。

Raspberry PIのRaspbianと、dockerのubuntuは、どちらもDebian系のLinux.

ソフトウェアの導入にaptコマンドが使える。


Macintosh

Macintoshだと標準でpython2が入っている。

最初は、pyenvをいれてからAnacondaを入れるのをお勧めしていた。

現在は、dockerでpython2、python3を別々に利用するのをお勧めしている。

そうはいっても、WindowsでもPythonを使いたいという方はおみえになる。

Windows にうまくPythonを入れられず、機械学習を諦めた方がいた。

それではと書き始めたのがこの記事。

2019年5月2日に、罠7を追記しています


目次

罠1 すでにPythonが入っている場合

罠2 [All Users] はシステム管理者のパスワードを知らないと進めない。

罠3 [Add Anaconda to the system PATH environment variable] は推奨されていません。

罠4 Windowsのコマンドプロンプトを起動して、pythonと打っても動いてくれない。

罠5 ディスクがいっぱい。

罠6 システムの設定、ソフトの導入が色々。

罠7 pythonプログラムに引数を渡す時の課題


Anaconda(python)をMS Windowsに導入する(罠7つ)。

dockerを入れる前に、pythonを使いたい方が、 WindowsにAnacondaを導入する際の罠を記録。


罠1 すでにPythonが入っている場合

Anacondaをアンイストールしなとうまく導入できないことをしばしばお目にかかりました。

「コントロールパネル」の「ソフトウェア」で「Python for windows」などをアンインストールしてください。

場合によっては、レジストリファイルを変更しないといけないことがあるかもしれません。10回インストールしなおして駄目だったら、Windowsの再インストールをお勧めします。


初めてAnacondaを導入する場合

AnacondaのURL[リンク]を押す。

https://www.anaconda.com/download/

接続しているOSによって、接続しているOSに必要な版を示してくれる。

適切なOSでなければ、Windows macOS Linuxのうち必要なOSを選ぶ。

anaconda.jpg


Pythonの版は3.6を選ぶ。(2017年)

「ゼロから作るDeep Learning」では3.6がお勧め。(2017年当時の記述です。当時のソースはそのまま動くはず。3.7でも大丈夫。)

ana2.jpg


ダウンロードディレクトリを見る

ana3.jpg


[ Anaconda3-4.4.0-Windows-x86_64 ]をダブルクリック

 ana4.jpg


[ 実行(R) ]

ana5.png


[ Next> ]

ana6.png


[ I Agree ]

ana7.png


今使っているユーザだけでよければ[ Just me ]が選択されている状態で[ Next > ]。

どのユーザでも使いたければ、[ All Users ]を選択する。


罠2[ All Users ]はシステム管理者のパスワードを知らないと進めない。

ana8.jpg


システム管理者のパスワードを知らなければ、[いいえ]で戻って[ Just Me ]に戻す。

ana9.png


Next>

ana7.5.png


[ Register Anaconda as the system python 3.6 ]のままで[ Install ]


罠3 [ Add Anaconda to the system PATH environment variable]は推奨されていません。

Pathを切ってしまうと、これまでのソフトや、古いPythonのソフトが動作しなくなるかも。また、別のPythonの版で試したい時、Anaconda以外で操作したいときに困ることがある。どちらがよいかは、何をしたいかによる。

1)これまでPythonを使ったことがない人。

2)複数の道具でPythonによるコマンドが装備されていない人。

3)これからも複数のPythonの版を並列で使うことがない人。

4)これから作ったプログラムを複数のPythonで試験して出荷することがない人。

Pathを切ってもよいのは、上記全てが当てはまる限られた人かもしれない。

anax.png

anax1.png


[ Next> ]

anax2.png


[ Finish ]ここまでで終了。


Windowsのメニューから、[ Anaconda3 ]の[ Anaconda Prompt ]を選ぶ。

anax3.png


Jupiter Notebookを選んでもよい。

手引きや教育用資料を作る場合はJupiter Notebookがお勧め。

anax4.png


罠4Windowsのコマンドプロンプトを起動して、pythonと打っても動いてくれない。

OSが他のPythonの版を必要としている場合には、その設定に影響を与えないため。

anax5.png


ここで慌てて、Autoexec.batなどを編集してしまうと、さらなる深みに嵌るかも。


罠5 ディスクがいっぱい。

ディスクがいっぱいだと途中で入らなくなる。1.9GB必要。

対策:ディスクのバックアップ(予備)を別のディスク等にとって、あまり使わないソフトウェア、データを削除する。


罠6 システムの設定、ソフトの導入が色々。

ディスクがいっぱいではなくても、いろいろなアプリケーションを追加削除しているうちに、システムの設定がくちゃくちゃになって動かないソフトがあれこれある。

導入途中で失敗したソフトの残骸が残っていると辛いことがある。また、同じソフトの複数の版があってもおかしな振る舞いをする。環境変数設定がちぐはぐだったり、不必要な設定が入っていたり。

対策:ディスクのバックアップ(予備)を別のディスク等にとって、OSの入れ直しをする。

Macintoshだとbrew, Debian/Ubuntu/Raspbianだとapt-getなどの整合性を確認して導入するソフトがある。Windowsも似たものがあるといいかも。


罠7 pythonプログラムに引数を渡す時の課題

罠6つで約2年過ごした。ある日、

「wikipediaからのページからリンク一覧を取得する方法」を動かしてみた

https://qiita.com/kaizen_nagoya/items/ef4a8d21ec98851d10a0

URLの一部をを引数で渡すプログラムを書き始めたら、WindowsのAnacondaでうまくいかない現象に遭遇した。

Python3: URLをコマンドライン引数で

https://qiita.com/kaizen_nagoya/items/fc095b0c580a35001ea7

pythonを付けて実行するとエラーにならないのに、実行ファイルにすると下記エラーが出る。

>wic.py hazop

Traceback (most recent call last):
File "C:\Users\kaize\Downloads\wic.py", line 15, in <module>
url = "https://ja.wikipedia.org/wiki/" + urllib.parse.quote(args[1].upper())
IndexError: list index out of range

解決するためには、下記にレジストリファイルを治す方法があるらしい。

WindowsでanacondaのPythonに引数が渡せない?

https://ja.stackoverflow.com/questions/40319/windowsでanacondaのpythonに引数が渡せない

レジストリファイルは、直したくない。何が起こるか分からないから。

Windowsではpythonをつけて動かすことにしている。


ふりかえり


わかったこと

AnacondaはPythonの有力な配布元だ。

AnacondaでPython3が利用できる。

Anacondaでコマンドが利用できる。

AnacondaでJupiter Notebookが利用できる。

WindowsでもAnacondaが導入できる。


わかっていないこと

どうしてAnacondaという名前なのか

p.s. 20190317追記

@jerrywdlee さん。からお知らせいただきました。

Kingdom:
Animalia
Animalia

Phylum:
Chordata
Chordata

Class:
Reptilia
Reptilia

Order:
Squamata
Squamata

Suborder:
Serpentes
Serpentes

Family:
Pythonidae
Boidae

Subfamily:

Boinae

Genus:
Python
Eunectes

group

Anaconda

生息地
ユーラシア大陸・アフリカ大陸
南アメリカ大陸

https://en.wikipedia.org/wiki/Python_(genus)

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

英語のWikiで調べると、上記の表のような関係。特徴としては、概念的にはAnacondaの方が下位。完全な包含関係ではない。Anacondaは大型である。生息地が違う。ソフトウェアの集合としてもAnacondaはそこそこいろいろ含んでいる、Pythonより下位概念の用語であるという感じで理解。

Photo By Wagnermeier - Own work, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=8981531 01-COBRA-SUCURI-3M-WAGNER-MEIER_MG_2458.JPG


よかったこと

Python3とPython2の環境を別々に利用できる。

自分の書いた記事で、一番Viewsが多い記事である。

一番よいねが多い記事は別。


改めたいこと

参考文献を強化

p.s. この投稿の元原稿は下記。こちらも順次改訂予定。

[リンク] https://researchmap.jp/jo055mfbh-2078500/#_2078500


参考文献(reference)

入門 Python 3, Bill Lubanovic ,‎ 翻訳 斎藤 康毅 ,‎ 長尾 高弘

https://www.amazon.co.jp/dp/4873117380/

Effective Python ―Pythonプログラムを改良する59項目

https://www.amazon.co.jp/dp/4873117569/

Windows環境にPython 3.5.1+numpy+scipy+αをインストール

https://qiita.com/kenichi-t/items/7319b3876ae7f0d3817c


docker でPython

言語処理100本ノックをdockerで。

https://qiita.com/kaizen_nagoya/items/7e7eb7c543e0c18438c4

65歳からのプログラミング入門

https://qiita.com/kaizen_nagoya/items/1561f910c275b22d7c9f

Play with Docker でエラー

https://qiita.com/kaizen_nagoya/items/fbf054705bff725dbc25

なぜdockerで機械学習するか 書籍・ソース一覧作成中 (目標100)

https://qiita.com/kaizen_nagoya/items/ddd12477544bf5ba85e2

dockerで機械学習 with anaconda(1)「ゼロから作るDeep Learning - Pythonで学ぶディープラーニングの理論と実装」斎藤 康毅 著

https://qiita.com/kaizen_nagoya/items/a7e94ef6dca128d035ab

dockerで機械学習with anaconda(2)「ゼロから作るDeep Learning2自然言語処理編」斎藤 康毅 著

https://qiita.com/kaizen_nagoya/items/3b80dfc76933cea522c6

dockerで機械学習 with anaconda(3)「直感Deep Learning」Antonio Gulli、Sujit Pal 第1章,第2章

https://qiita.com/kaizen_nagoya/items/483ae708c71c88419c32

dockerで機械学習(17) with anaconda(17)「PythonとKerasによるディープラーニング」 :Francois Chollet著

https://qiita.com/kaizen_nagoya/items/bce4fa73560370733ea2


Anaconda @ qiita

【決定版】WindowsでPythonを使って『機械学習』を学ぶための環境構築

https://qiita.com/yoshizaki_kkgk/items/1057ed4dcc36ed9be7f5

Pathを切ってしまうと、別のPythonの版で試したい時、Anaconda以外で操作したいときに困ることがある。どちらがよいかは、何をしたいかによる。

Anaconda: ビギナーズガイド

https://qiita.com/Scstechr/items/0793d7d01b9620bf47df

anaconda導入(red hat系?)

https://qiita.com/shama/items/0b5b3b91779bbd25118d

Anaconda で Python 環境をインストールする

https://qiita.com/t2y/items/2a3eb58103e85d8064b6

pyenvでAnacondaをインストールする方法

https://qiita.com/kazuhikoyamashita/items/ed5d8b94a902a2e89efa

MacにPyenvを使ってAnacondaを入れる

https://qiita.com/katzhide/items/527ef101d5067ee84416


pyenv @ Qiita

pyenvを利用してPython環境を整備する方法

https://qiita.com/kazuhikoyamashita/items/273692ccbdf8c0950a71

仮想環境 バージョン管理 まとめ Python

https://qiita.com/hedgehoCrow/items/0733c63c690450b14dcf

pyenvにおけるpythonインストールエラー対処法(BUILD FAILED)

https://qiita.com/cabbage/items/0b451ae324595cc54d22


python 3.7, 3.8

Python3.7の新機能

https://qiita.com/ksato9700/items/35a0bdc04693b3b09757

Python3.7.1の環境構築

https://qiita.com/Hams/items/ec862c5122d511ccfb92

Python 3.7のベンチマーク

https://qiita.com/seri/items/82f7276f2b9e9b78146f

Python3.7のmathの場所

https://qiita.com/yukimurashun/items/e5a932f389c4be0a6c53

WSL(openSUSE)にPython3.7.2をインストール

https://qiita.com/m_myo0/items/6b7b9252c33a99c76d0c

PyCharm + Docker + Python3.7の開発環境構築メモ

https://qiita.com/tomitz/items/722960b124600391f491

Raspberry Pi に Python 3.7.0 をインストールする

https://qiita.com/GuitarBuilderClass/items/d6d2798bebf7b916c5c6

Python 3.8 では空dictが小さくなる

https://qiita.com/methane/items/167a848e96146cddca78

Python3.8の新機能 (まとめ)

https://qiita.com/ksato9700/items/3846e8db573a07c71c33

Python3.8の新機能(1) - コンパイルしたバイトコードファイルの置き場所を指定できる

https://qiita.com/ksato9700/items/da8df4e01b8b77293dbf

Python3.8の新機能(2) - 代入式の導入

https://qiita.com/ksato9700/items/d37efc6982365e24f6af


背景(background)


「ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装」斎藤康毅オライリージャパン(2016)

で使うPythonを入れるなら、Jupyter Notebookもあるanacondaがお勧め。

dee.jpg

「ゼロから作るDeep Learning 2自然言語処理編」を読む前に読んで置くとよい資料とプログラム

https://qiita.com/kaizen_nagoya/items/537b1810265bbbc70e73

Pythonは、機械学習、道具類のコマンドなどあちこちで使われています。Raspberry Piでも初めから入っています。

MS Windowsでも、Mac OSでもLinuxでもお勧めです。今回はMS Windowsへ導入しましょう。

Anacondaは、Pythonに統計解析のライブラリやJupyter Notebookなどの便利な道具類をまとめて提供する配布元(distributer)です。

機械学習、深層学習(deep learning)の勉強にもお勧め。

[リンク]http://www.anaconda.com/download/

「ゼロから作るDeepLearning - Pythonで学ぶディープラーニング の理論と実装」のプログラムをWindowsで実行するのにうまくいかなかった方への伝言です。


文書履歴(document history)

ver 1.00 初稿 20171218

ver 1.01 参考文献追記 20180123

ver 1.02 参考文献追記 20180327

ver 1.03 「Pathを切るとよいかどうかは、何がしたいかによる。」を追記。

ver 1.04 Macintoshでdockerでpython利用を推奨 を追記 20180505

ver. 1.05 罠5つから6つに変更。他のPythonをアンインストール追記 20180828

ver. 1.06 docker で python 追記 20190120

ver. 1.07 言語処理100本ノックをdockerで。20190225

ver. 1.08 Anacondaの命名由来追記 20190317 朝

ver. 1.09 3.6, 3.7, 3.8 について記載。20190317 昼

ver. 1.10 Anacondaの写真追記 20190318

ver. 1.11 罠7 引数 追記 20190502

ver. 1.12 誤植訂正 20190509

ver. 1.13 下記->上記 誤記訂正 20190512

ver. 1.14 みだし2019追加 20190523

ver. 1.15 はじめに表現補正 20190525

ver. 1.16 見出し修正、目次追加 20190602

ver. 1.17 はじめに加筆 20190610

ver. 1.18 はじめに、機械学習にpython加筆 20190624

ver. 1.19 docker hub追記 20190719

このエントリーをはてなブックマークに追加

http://b.hatena.ne.jp/guide/bbutton

  • 目次
  • Anaconda(python)をMS Windowsに導入する(罠7つ)。
  • 罠1 すでにPythonが入っている場合
  • 罠2[ All Users ]はシステム管理者のパスワードを知らないと進めない。
  • 罠3 [ Add Anaconda to the system PATH environment variable]は推奨されていません。
  • 罠4Windowsのコマンドプロンプトを起動して、pythonと打っても動いてくれない。
  • 罠5 ディスクがいっぱい。
  • 罠6 システムの設定、ソフトの導入が色々。
  • 罠7 pythonプログラムに引数を渡す時の課題
  • ふりかえり
  • 参考文献(reference)
  • 背景(background)
  • 文書履歴(document history)