メインコンテンツへスキップ
見出し画像

環境構築2:Windows(Python以外のプログラミング用)

    概要

     Windowsユーザーの環境構築において、Pythonに必須ではないですが将来使いそうなものを紹介します。「さっさとPython触ってみたい・機械学習したい!」という人は記事を見なくても大丈夫です私の場合は勉強段階なら使わなかったです。
     Python・IDEの環境構築は下記をご参照ください。


    1.Git・Github

     GitはVersion管理ツールになります。こちらでコードの差分を管理などができます。

    1-1.Gitインストール

     インストールはProgate記事を参照しましたが基本的には全部デフォルト設定で問題ないです(EditorはVS CODEに変更)。

    画像

     Gitの使い方はAtlassianのサイトを参考にしています。

    1-2.Github

     GitHubのアカウントは作成しておきます。

    1-3.参考資料:GiT

    Gitワークフローのシンプルな図解 https://t.co/1qIX0JJLmp pic.twitter.com/KLQ7OqrxbC

    — 🎍QDくん🎍Python x 機械学習 x 金融工学 (@developer_quant) December 18, 2022

    2.SQL

     SQLはデータベースを作成するツールです。
     詳細は追って(環境構築で苦戦中)

    3.ターミナル

     Windowsでは初期からPower Shellやコマンドプロンプトがありますがその他便利ツールを追加します。それぞれのシステム必要条件OSのバージョンなどはご確認ください。

    3-1.Windows Terminal

     Windows Terminalは1つのウィンドウで複数のターミナルが使えます。

    画像

    3-1-1.Windows Terminalのインストール

     Microsoft Storeから「Windows Terminal」を検索してインストールします

    画像

    3-1-2.ターミナル登録:Git Bash/Anaconda Prompt

     初期設定では使えないターミナルせっかくまとめて使える機能があるのにをWindows Terminalで使用できるようにします。(WSLのUbuntuは使用可能)。

    【Git Bashのインストール】
     
    Git Bashの追加は下記記事を参照しました。

     Windows Terminalから「設定」->「JSONファイルを開く」を選択するとVS CODEで「settings.json」が開きます。

     「settings.json」内の"profiles"に"list"があり、"list"内に使用できるターミナルの情報が入っています。そこに下図の通りコード追加します。

    [Power Shellで実行]
    
    [guid]::NewGuid()
    [settings.jsonに追加]
    
    "name" : "Git Bash",
    "guid": "{d97ca54b-bac0-4fb2-96dd-1097bd935089}",
    "commandline" : "\"%PROGRAMFILES%\\git\\bin\\bash.exe\" --login -i -l",
    "icon" : "%PROGRAMFILES%\\git\\mingw64\\share\\git\\git-for-windows.ico",
    "hidden": false,
    "background" : "#000000",
    "closeOnExit" : true,
    "colorScheme" : "Campbell",
    "cursorColor" : "#FFFFFF",
    "cursorShape" : "bar",
    "fontFace" : "Consolas",
    "fontSize" : 10,
    "historySize" : 9001,
    "padding" : "0, 0, 0, 0",
    "snapOnInput" : true,
    "useAcrylic" : true

    【Anaconda Promptのインストール】
     私はPythonをAnacondaで使用しているためAnaconda Promptを追加します。下記記事をそのまま実行すればすんなり入れることができました。

     なおcommandlineとiconのパスをコピペする時にエスケープシーケンス\マークの前に\を追記が抜けていることがあるため修正しました。

    画像
    修正前:"%USERPROFILE%\anaconda3\Menu\anaconda-navigator.ico",
    修正後:"%USERPROFILE%\\anaconda3\\Menu\\anaconda-navigator.ico",

    3-2.WSL2

      WSL とはWindows Subsystem for Linuxの略であり、Windows内でLinuxコードが使用できます。WSL詳細は下記記事参照。

     なおWSL 2 は、Windows 10 (バージョン 1903、ビルド 18362 以上) でのみ使用できます。Win+Rで”ファイル名を”指定して実行”を開き、WindowsのVersionが要求を満たすか確認が必要です。

    画像
    画像

    3-2-1.WSLインストール

     基本的には公式Docsを参照しながらインストールします。

    【参考記事】
    ①WSLのインストール(公式Docs):参照用(②のみで十分)
    ②WSL開発環境を設定する(公式Docs):メインはこちら

     インストール方法はPower Shellでで下記を実行+再起動するだけです。

    [Power Shell※管理者として実行する]
    wsl --install

     本コードでは下記が処理されます(理解しなくても動くからヨシッ)。

    【wsl --installで実行される処理内容】
    ●オプションの WSL および仮想マシン プラットフォームのコンポーネントを有効にする
    ●最新の Linux カーネルをダウンロードしてインストールする
    ●WSL 2 を既定値として設定する
    ●Ubuntu Linux ディストリビューションをダウンロードしてインストールする (再起動が必要になる場合があります)

     なおエクスプローラに”\\wsl$”と入力するとUbuntuを確認できます。

    画像

    3-2-2.Ubuntuのusername・password設定

     WSLインストール完了後にWindows TerminalからUbuntuが選択できます。

    画像

     Ubuntuを開くとusernameとpasswordが要求されるため登録します。

    画像

    3-2-3.パッケージの更新とアップグレード

     (公式Docsに従って)WSLでインストールしたLinux OSUbuntuを更新します。

    [Ubuntu]
    sudo apt update && sudo apt upgrade
    画像

     更新後はPower Shellに"wsl -l -v"と入力してLinux OSと種類とWSLのVersionを確認します(下図:Linux OS=Ubuntu、WSL Ver.:2)。

    画像

    4.WSL2にAnacondaをインストール

     WindowsのWSL環境下でもAnacondaを使用できるようにします。通常のPythonスクリプトは問題ないのですが、複雑なAIモデルを使う場合Linuxコマンドが必要になるためです。
     基本的に下記記事をそのまま使用しているため要点だけ抽出しました。

     WSLは事前に下記コマンドを実行しておきます。

    [Terminal]
    sudo apt update
    sudo apt upgrade

    ●apt update:パッケージのリポジトリからパッケージの名前やバージョン、依存関係を取得して有効でインストール可能なパッケージの一覧を更新
    ●apt upgrade:有効なパッケージ一覧を元にアップデート可能なパッケージを更新

    4-1.AnacondaインストーラのDL:wget

     「ANACONDA DISTRIBUTION」から下図を右クリックして「リンクのアドレスをコピー」して、"wget <コピーしたリンク>"をWSLで実行します。
    ※wgetコマンド:指定URLからファイルをDLする

    画像

     実際のコードは下記の通りです。処理完了後にlsコマンドで作業ディレクトリ内のファイル一覧を確認して"Anaconda~.sh"を確認出来たら成功です。
    ※lsコマンドはオプション無しだと隠しファイルは表示しません。
    ※参考用にExplorerでもファイルの存在を確認できました。

    [Terminal]
    wget https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-x86_64.sh
    ls
    
    [OUT]
    Anaconda3-2022.05-Linux-x86_64.sh
    画像

    4-2.Anacondaシェルスクリプトの実行:bash

     ダウンロードしたファイル「Anaconda3-2022.05-Linux-x86_64.sh」は”シェルスクリプト”のため、bashシェルを指定して実行します。

    [Terminal]
    bash Anaconda3-2022.05-Linux-x86_64.sh

     いくつか質問が出ますのでコマンドで対応します。

    [Q.]
    In order to continue the installation process, please review the license
    agreement.
    Please, press ENTER to continue
    [Command]
    Enterキー
    
    [Q.]
    規約の表示
    --More--
    [Command]
    q
    
    [Q.]
    Do you accept the license terms? [yes|no]
    [Command]
    yes 
    Enter
    
    [Q.]
    done
    installation finished.
    Do you wish the installer to initialize Anaconda3
    by running conda init? [yes|no]
    
    [Command]
    yes
    
    [OUT]
    no change     /home/kiyo/anaconda3/condabin/conda
    no change     /home/kiyo/anaconda3/bin/conda
    no change     /home/kiyo/anaconda3/bin/conda-env
    no change     /home/kiyo/anaconda3/bin/activate
    no change     /home/kiyo/anaconda3/bin/deactivate
    no change     /home/kiyo/anaconda3/etc/profile.d/conda.sh
    no change     /home/kiyo/anaconda3/etc/fish/conf.d/conda.fish
    no change     /home/kiyo/anaconda3/shell/condabin/Conda.psm1
    no change     /home/kiyo/anaconda3/shell/condabin/conda-hook.ps1
    no change     /home/kiyo/anaconda3/lib/python3.9/site-packages/xontrib/conda.xsh
    no change     /home/kiyo/anaconda3/etc/profile.d/conda.csh
    modified      /home/kiyo/.bashrc
    画像

    4-3.シェルの設定反映:source ~/.bashrc

     シェルの設定を反映させるために下記コマンドを実行します。

    [Terminal]
    source ~/.bashrc

     適当にcondaコマンドを実行してエラーがでなければ成功です。

    [IN]
    conda info -e
    
    [OUT]
    # conda environments:
    #
    base                  *  /home/kiyo/anaconda3

     なお不要であればrmコマンドでshファイルは削除しておきます。

    [Terminal]
    rm Anaconda3-2022.05-Linux-x86_64.sh
    ls
    
    [OUT]
    anaconda3

    5.Docker

     (ちゃんと理解できてないけど)Dockerはコンテナ仮想化を用いてアプリケーションを開発・配置・実行するためのオープンプラットフォームです。とりあえずどのPCでも同じ環境構築ができるらしい!

    5-1.Dockerのインストール

     下記サイトから”Docker Desktop Installer.exe”を取得して実行します。設定はすべてデフォルトで問題ございません。

    画像

    5-2.インストールの確認

     4-1.完了後に、インストールが正しくできたか確認するためにUbuntuで「docker --version」を実行します(Version表示が出ればOK)。

    画像

    5-3.Docker+WSL2環境でVmmemのメモリ量抑制

     そのまま使うとVmmemのメモリ消費量が100%近くなるので下記記事参考にして対策しました。

    ●Docker+WSL2の環境でVmmemのメモリ量が巨大になるのを制限する
    ●WSL2によるホストのメモリ枯渇を防ぐための暫定対処
    ●WSL2 + Docker をメモリを節約しながら使えるか
    ●Docker Desktop WSL 2 backend(別用途で使うかも)

     まずはWindows TerminalからUbuntuを立ち上げて、ユーザーのホームディレクトリから下記コードを実行します。

    画像

    【Ubuntuターミナルで実行】
    ●touch .wslconfig:touchで".wslconfig"ファイルを作成
    ●ls -a:全ファイルを出力して".wslconfig"が作成されたことを確認
    ●echo -e 'memory=2GB\nswap=0' > .wslconfig:".wslconfig"に書き込み
    ●cat .wslconfig:".wslconfig"に書き込まれたことを確認

     ".wslconfig"を作成したらPower Shellで"wsl --shutdown"を実行してWSLを再起動します。

    画像

    6.クラウド(SaaS)の登録

     自分で作成したサービスをデプロイする可能性皆が使えるようにするがあるため、SaaSのサービスを使えるように準備をしておく。

    6-1.HEROKU

     2022年11月28日より一部のサービスは無償提供を廃止予定。

    6-1-1.HEROKUアカウント作成・HEROKU CLIのインストール
     
    HEROKUのアカウント作成後に、Heroku CLIをインストールします。インストール後は「heroku -v」で完了したか確認します。

    画像

     変な警告「 Warning: heroku update available」が出たので「heroku update」で更新しました。

    画像

    6-1-2.デプロイ前のBoot Timeout(アプリ作成後)
     デプロイ時のポート割り当て初期値は60sですが重い処理の場合エラーが出ることがあるため「Change Boot Timeout」の時間を延ばしておきますエラーが出た時に対応。

    画像



    あとがき

     最近入れ始めたツールもあるため修正するかもしれないです。
     まだ全ツールを有効活用できていないけど、将来的には勉強していかないといけないことが多い。


     
     

    KIYO

     
     
    普段は製造業で企画/開発/設計しております。記事はプログラミング・機械学習、IoT関係の記事をメインで作成し、なるべく1つの記事で知りたいことを網羅していきます。内容は学術的より実装・アウトプット(ほしくなるもの)を重視して作成しています。 面白そうな仕事があればやりたいです!

    あなたへのおすすめ