
環境構築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やコマンドプロンプトがありますがその他便利ツールを追加します。それぞれのシステム必要条件はご確認ください。
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 OSを更新します。
[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]
anaconda35.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」の時間を延ばしておきます。

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