Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

of

WindowsでPython Slide 1 WindowsでPython Slide 2 WindowsでPython Slide 3 WindowsでPython Slide 4 WindowsでPython Slide 5 WindowsでPython Slide 6 WindowsでPython Slide 7 WindowsでPython Slide 8 WindowsでPython Slide 9 WindowsでPython Slide 10 WindowsでPython Slide 11 WindowsでPython Slide 12 WindowsでPython Slide 13 WindowsでPython Slide 14 WindowsでPython Slide 15 WindowsでPython Slide 16 WindowsでPython Slide 17 WindowsでPython Slide 18 WindowsでPython Slide 19 WindowsでPython Slide 20 WindowsでPython Slide 21 WindowsでPython Slide 22 WindowsでPython Slide 23 WindowsでPython Slide 24 WindowsでPython Slide 25 WindowsでPython Slide 26 WindowsでPython Slide 27 WindowsでPython Slide 28 WindowsでPython Slide 29 WindowsでPython Slide 30 WindowsでPython Slide 31 WindowsでPython Slide 32 WindowsでPython Slide 33 WindowsでPython Slide 34 WindowsでPython Slide 35 WindowsでPython Slide 36 WindowsでPython Slide 37 WindowsでPython Slide 38 WindowsでPython Slide 39 WindowsでPython Slide 40 WindowsでPython Slide 41 WindowsでPython Slide 42 WindowsでPython Slide 43 WindowsでPython Slide 44 WindowsでPython Slide 45 WindowsでPython Slide 46 WindowsでPython Slide 47 WindowsでPython Slide 48 WindowsでPython Slide 49 WindowsでPython Slide 50 WindowsでPython Slide 51 WindowsでPython Slide 52 WindowsでPython Slide 53 WindowsでPython Slide 54 WindowsでPython Slide 55 WindowsでPython Slide 56 WindowsでPython Slide 57 WindowsでPython Slide 58 WindowsでPython Slide 59 WindowsでPython Slide 60 WindowsでPython Slide 61 WindowsでPython Slide 62 WindowsでPython Slide 63 WindowsでPython Slide 64 WindowsでPython Slide 65 WindowsでPython Slide 66 WindowsでPython Slide 67 WindowsでPython Slide 68 WindowsでPython Slide 69
Upcoming SlideShare
HPCS2015 大規模量子化学計算プログラムSMASHの開発と公開(石村)
Next
Download to read offline and view in fullscreen.

9 Likes

Share

Download to read offline

WindowsでPython

Download to read offline

みんなのPython勉強会#22
2017/03/08
driller@patraqushe

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

WindowsでPython

  1. 1. WindowsでPython みんなのPython勉強会#22 2017/03/08 driller@patraqushe
  2. 2. 自己紹介 ○ driller / どりらん @patraqushe ○ - 2010: コンピュータの会社に勤務 ○ 2010 -: 個人トレーダー ○ 2015 -: Pythonをはじめる
  3. 3. fin-pyの紹介 Python + 金融のコミュニティです 毎月もくもく会をやってます 金融について詳しくない方でも興味が あるかた大歓迎です 次回は3/26(日)11:00- です
  4. 4. お申込みは今すぐ! https://connpass.com/event/52667
  5. 5. 注意事項(重要) ○ 複数の環境構築方法ついて説明しますが、優劣をつける 意図は全くありません ○ #stapy のハッシュタグで、特定のOSやパッケージ等につ いてネガティブなツイートをしようようにしてください
  6. 6. 宗派が違ってもお互いを尊重して仲 良くしましょう ケンカはダメ。ゼッタイ。
  7. 7. Agenda 1. Windows + Pythonの状況 2. 環境構築について 3. 仮想環境について 4. おまけ
  8. 8. Windowsを 取り巻く昨今の状況 おもいでぽろぽろ
  9. 9. 一昔前のWindows+Python環境 ○ Pythonのイベントに行けば、みんな当たり前のように MacBook ○ Linuxでしか動かないパッケージ ○ Linuxの情報しかない
  10. 10. Windowsユーザが増えてきた? ○ IT以外の職種 ● 科学技術 ● 統計、マーケティング ● 金融 ○ 機械学習ブーム ○ Pythonブーム
  11. 11. Windowsを使う理由 ○ 以前からWindowsユーザ ○ 職場がWindows ● 非IT系が多い ○ H/Wの選択肢を広げる ● ( ゚∀゚)o彡° Ryzen!Ryzen! ○ Windowsソフト、win32api
  12. 12. Windowsが 避けられていた理由 なぜITエンジニアからは敬遠されるのか
  13. 13. 文字コード ○ CP932 ○ 1982年の規格 ● 35年前! ○ 文字化けとの長い戦い・・・
  14. 14. コンソール(ターミナル)環境 ○ コマンドプロンプトが主流だった ○ コンソール上でエディタが使いづらい ○ スクリプト処理でできることが限られている ○ MS-DOS時代(1981年)から殆ど進化していない
  15. 15. Pythonパッケージの対応 ○ Windowsが後回しにされるケースが多い ○ Windows用にビルドされたwheelがない ○ ビルドが大変 ● scipy, lxml, mecab, opencv
  16. 16. Windows環境の改善 やればできる子?
  17. 17. Python3.6でのWindows対応 ○ PEP529: ファイルシステムエンコーディングがUTF-8に ○ PEP528: コンソールエンコーディングがUTF-8に ○ ロングパス対応 ● 260文字制限がなくなった
  18. 18. コンソールエンコーディングを試す 下記のコマンドを実行してみましょう python -c "print('€')" もしくはpythonを実行して >>> print('€')
  19. 19. PowerShell ○ 130個以上の標準的なコマンドラインツール ○ 管理タスクに重点を置いた新しいスクリプト言語 ○ 一貫性のある構文とユーティリティ ○ エイリアスによるUNIXコマンドとの共通化
  20. 20. コンソール サードパーティのソフトの機能がそれなりに充実 ○ ConEmu ○ Cmder ○ etc
  21. 21. 仮想環境 ○ virtualenvwrapper-winはコマンドプロンプトしか使えな かった ● Python2ではvirtualenvwrapper-powershellをインストールすると PowerShellが使える ● virtualenvwrapper-powershellは少しめんどくさい ○ venvでPowerShellが使えるように ● Pythonの標準として使える
  22. 22. ビルドが必要なパッケージ ○ Visual C++ 2015 Build Tools ● Visual Studioのインストールが不要に ○ 非公式バイナリ ● http://www.lfd.uci.edu/~gohlke/pythonlibs/ ○ ANACONDA
  23. 23. Docker for Windows ○ VirtualBox、Gitのインストールが不要に ● インストールが楽になった ○ PowerShell対応
  24. 24. Bash on Ubuntu on Windows ○ WindowsでBash(Ubuntu)が使えるように ○ Pythonも動作 ○ オーバヘッドなしにLinuxのバイナリが動作 ○ ベータ版で発展途上だが着々と改善している
  25. 25. Windowsでも Pythonが使えるようになってきた
  26. 26. 環境構築の重要性 人はなぜ環境構築の話になると 熱くなるのか?
  27. 27. 本当にあった怖い話 ○ 会社員時代に仕様書に従って三日三晩かけてシステムを 構築 ○ 32bitのOSじゃないとアプリケーションが動かないことが判 明 ○ OSから全部入れ直し・・・
  28. 28. 環境構築を甘く見ていると・・・ ○ プラットフォームの選択を誤ると、そもそもやりたかったこと ができなくなる ○ 壊れたときにやり直しが大変になる ○ 変更をした影響で既存のプログラムが動かなくなる
  29. 29. Windowsにおける Pythonの選択肢 意外と色々ある
  30. 30. WindowsにおけるPythonの選択肢 ○ 公式のPython ○ ディストリビューション ● 公式 ● ANACONDA ● Intel® Distribution for Python* ● etc
  31. 31. その他の選択肢 ○ VM ● VirutualBox, VMWare ○ Docker ● Docker for Windows ● Doker Toolbox ○ Cygwin, MSYS, MSYS2 ○ Bash on Ubuntu on Windows
  32. 32. 公式配布のPython ○ python.orgから配布されているPython ○ 公式なので色々と安心 ● 情報が充実 ● 事例が豊富 ○ 最新版のリリースが一番早い ○ vanilla Pythonとも呼ばれるらしい
  33. 33. 32bit or 64bit ○ 32bitにする理由 ● OSが32bit ● win32APIを呼び出す ● C拡張を32bitでビルドして配布する ○ 上記以外の理由がなければ64bitでよさそう ○ 両方入れるという選択肢も
  34. 34. ANACONDA ○ Continuum Analytics社が提供しているPythonのディス トリビューション ○ データ分析等によく使われる多数のパッケージがプリイン ストール ○ パッケージ管理が独自仕様 ○ 最小構成で入れる場合はMinicondaを選択
  35. 35. 公式配布のPython or ANACONDA ○ きのこたけのこ戦争並の論争に ○ それぞれに利点と欠点があるので、それを踏まえた選択 を ○ 両方入れるという選択肢も
  36. 36. ANACONDA 利点 ○ 必要そうなパッケージ が大抵入ってる ○ すぐにはじめられる ○ パッケージがビルド済 み 欠点 ○ パッケージが独自仕様 ○ 最新版とのラグ ○ 問題が会った場合のト ラブルシュートが困難
  37. 37. Intel® Distribution for Python* ○ 様々な点で高速化されている ● MKL: Numpy, Scipy, scikit-learn ● Threading Building Blocksライブラリ ● JITコンパイル(Numba) ● CythonとMPIライブラリを使用したmpi4pyの高速化 ● pyDAALを介したデータ解析アクセラレーションライブラリ ○ pip, condaを使用したパッケージ管理が可能 ○ 最新のPythonがビルドされるまでのラグがある ● 2017年02月時点ではPython3.5
  38. 38. その他のディストリビューション ○ Enthought Canopy ● scipy.orgのスポンサー ○ Python(x,y) ● 2系のみ、開発終了? ○ WinPython ● ポータブル ● バージョンが古い
  39. 39. 複数のPythonを入れる場合のTips ○ インストール時にPathを設定しないようにする ● システムで使いたいPythonだけ設定する ○ Pathを切り替える方法を用意する ● コマンドプロンプト ■ バッチファイル ■ doskey ● PowerShell ■ スクリプト ■ Set-Alias
  40. 40. PATHの通し方(コマンドプロンプト) 例: "C:Python36"にpython.exeがある場合 ○ 既存のPATHを含める PATH=C:Python36;C:Python36Scripts ○ 既存のPATHを含めない PATH=C:Python36;C:Python36Scripts;%PATH%
  41. 41. PATHの通し方(PowerShell) 例: "C:Python36"にpython.exeがある場合 ○ 既存のPATHを含める $Env:Path = "C:Python36;C:Python36Scripts;" + $Env:Path ○ 既存のPATHを含めない $Env:Path = "C:Python36;C:Python36Scripts"
  42. 42. 環境を切り替えるコマンドを登録 Windows PowerShell プロファイルを作成して編集 New-item –type file –force $profile notepad $profile Set-AliasでPATHを通すコマンドを登録しておく
  43. 43. Demo コマンド一発でPython環境を切り替え ○ Python3.6(64bit) ○ Python3.6(32bit) ○ Python2.7(32bit) ○ ANACONDA Python3.6(64bit) ○ ANACONDA Python3.6(32bit) ○ Intel® Distribution for Python*
  44. 44. Bash on Ubuntu on Windows ○ Windows Subsystem for Linux(WSL)上で動作する Ubuntu ○ 14.04LTS→Build 14943以降から16.04LTSに ○ PythonはUbuntuと同じ方法でインストール ● apt-get ● ソースからビルド ● pyenv ○ 大抵のパッケージは動作 ● GUI系は少し工夫が必要
  45. 45. 仮想マシン、コンテナ Linuxの環境と合わせることができる ○ 仮想マシン ● VMWare ● VirtualBox ● Vagrant ○ コンテナ ● Docker for Windows ● Docker Toolbox
  46. 46. なぜわざわざLinux環境にするのか ○ 殆どのパッケージが動作 ○ 豊富な事例、ノウハウ ○ シェルスクリプト ○ 文字コード ○ 高い互換性 ● manylinux wheel
  47. 47. Demo ○ 数多の挑戦者を退けてきたmecabを試す ● Bash on Ubuntu on Windows ● Docker for Windows
  48. 48. 自分に合ったものを入れよう
  49. 49. 仮想環境のすゝめ 最強のリスクヘッジ
  50. 50. なぜ仮想環境を使うのか? ○ スクラップアンドビルドが容易 ○ 変更が全体に影響を及ぼさない ○ 複数のバージョンを扱える ○ 必要最小限の環境をつくれる
  51. 51. スクラップアンドビルド ○ 変更を加えるとおかしくなることがある ● パッケージ、拡張機能のインストール ● 環境変数の変更 ○ 場合によっては再インストールが必要に ○ 仮想環境にしておけば、削除して作り直しが簡単にできる
  52. 52. 変更に対する影響 ○ PATHの上書き ○ アップデートしたパッケージの変更 ○ Python自体のバージョン変更の影響
  53. 53. 複数のバージョン ○ Pythonのバージョンを複数に ○ パッケージのバージョンを複数に ○ PATHを自動で設定できる
  54. 54. 最小環境 ○ 単体でテストができる ● 依存パッケージの確認 ● パッケージの配布 ○ 問題の切り分けが容易
  55. 55. Windows + Python の仮想環境 virtualenv venv conda env
  56. 56. virtualenv ○ Python2の仮想環境の主流 ○ virtualenvwrapperと組み合わせることで利便性が向上 ○ Windowsではコマンドプロンプトのみ対応 ● PowerShellは一部対応
  57. 57. venv ○ Python3.3から標準ライブラリとして使用可能 ○ PowerShellに対応 ○ 任意のディレクトリに仮想環境を作成できる
  58. 58. venv超入門 ○ 仮想環境の作成 <python-path> -m venv <envname> ○ 仮想環境に切り替え <envdir>ScriptsActivate.ps1 コマンドプロンプトの場合はActivate.bat ○ 仮想環境から抜ける deactivate
  59. 59. ANACONDAの仮想環境(conda env) ○ ANACONDA独自の仮想環境 ○ 複数バージョンのPythonを構築できる ○ PowerShellで使う場合はPSCondaEnvsのActivateスクリ プトを使用する ● https://github.com/Liquidmantis/PSCondaEnvs
  60. 60. conda env超入門 ○ 仮想環境の作成 conda create -n <envname> python=<python-version> ○ 仮想環境に切り替え activate <envname> ○ 仮想環境から抜ける deactivate.ps1 コマンドプロンプトの場合はdeactivate.bat
  61. 61. Demo ○ venvによる仮想環境の切り替え ○ conda envによる仮想環境の切り替え
  62. 62. 仮想環境からはじめよう
  63. 63. おまけ ベンチマーク
  64. 64. 動作環境(プラットフォーム) Host OS Guest OS Python Windows-10-10.0. 15025-SP0 (build15025.1000) Python3.6.0 64bit Python3.6.0 32bit ANACONDA Python3.6.0 64bit ANACONDA Python3.6.0 32bit Intel® Distribution for Python* 3.5(Version 2017 (Update 2)) Linux-4.4.0-43-Microsoft-x86_ 64-with-Ubuntu-16.04-xenial Python3.6.0 (BoW) Linux-4.9.8-moby-x86_64-wit h-debian-8.7 Python3.6.0 (Docker for Windows 10072) ArchLinux Python3.6.0
  65. 65. プログラム ○ コードはPure Python ○ 与えられた自然数(今回は100,000,000)から 素数を探索するアルゴリズム ● https://github.com/famzah/langs-performance ○ 計測はBenchmarkerを使用 ● 5回施行し、最大値と最小値を除く3回の実行時間の平 均値
  66. 66. ベンチマーク結果 ※ Arch Linuxは同一のH/Wで実施(参考値)
  67. 67. ベンチマークについて ○ 懸念されていたBoWのオーバヘッドはなかった ● むしろ他より速かった ○ 個別パッケージのベンチマークをしたほうがよさそう ● Numpy, scipy, 機械学習系, 画像処理系 ○ パッケージのビルド方法によって差が出る可能性も
  68. 68. 速度が気になる人は測ってみよう
  69. 69. まとめ ○ WindowsでもPythonできる ○ 自分に合った環境構築を ○ 仮想環境を活用しよう ○ 速度が気になる人は比べてみよう
  • ssuser5f0b6d

    May. 20, 2020
  • KazunoriHiwatashi

    Apr. 24, 2018
  • KatsukiKuriyama

    Nov. 9, 2017
  • YoshihisaTabuchi1

    Oct. 20, 2017
  • IchiroYabuguchi

    Aug. 23, 2017
  • ShunSonohara

    Jul. 1, 2017
  • tsukisob

    Jun. 26, 2017
  • kitahiro11

    Jun. 21, 2017
  • HiromichiYuasa

    Mar. 31, 2017

みんなのPython勉強会#22 2017/03/08 driller@patraqushe

Views

Total views

10,664

On Slideshare

0

From embeds

0

Number of embeds

463

Actions

Downloads

34

Shares

0

Comments

0

Likes

9

×