kabuステーション APIの開発環境をWSL2上にせっかく作ったのに、 400 Bad Gatewayとなってアクセス出来ないのでガチャガチャやってみたが、やっぱりkabuステーション側に制限がかかっていた
(※Windowsに直接Python入れたら即実行出来たので判明。 host.docker.internalとか network_mode = hostとかやってみたけどダメでした)

【要望】localhost以外からのAPIアクセスについて · Issue #34 · kabucom/kabusapi

このままだと、なんのためにauカブコムの証券口座を開設したかわからなくなってしまうので、仕方ないのでPowerShell上に最低限のPython開発環境を作る事にする

Issueには、Windows上にNginxのリバースプロキシを立てて動いたという事らしいけど、結局Windows環境汚すならもう環境作ってしまえばいいかなと思って環境ごと作る事にした(kabuステーション自体もWindowsでしか動かないし)

作業環境

  • Windows Terminal使用
  • PoserShell使用

いれるもの

  • winget
  • git
  • vim
  • python

PowerShellの設定変更を出来るようにする

Linuxでいう所の、 .bash_profileみたいな物らしい?PowerShell界では、 .ps1のファイルがそれにあたるらしい(よく調べてない)

デフォルトでは無効になってるとの事

1
2
3
// 設定確認
> get-executionpolicy
Restricted

上記の通り、 Restrictedが表示されたら無効になっています

管理者権限でWindows Terminal(PowerShell)起動し、以下のコマンド実行

1
2
// 設定変更
> set-executionpolicy remotesigned

管理者権限を抜けてからWindows Terminal(PowerShell)を開き直し、 RemoteSignedが表示されたら有効になっています

1
2
3
// 設定確認
> get-executionpolicy
RemoteSigned

$profileに、参照している .ps1ファイルのPATHが格納されているので確認します

1
2
3
// .ps1のPATH確認
> $profile
C:\Users\username\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

表示されたファイルにアクセスし、なければ新規作成しておきます(後述するVimのインストール時に、aliasを追加する際に使用します)

インストール: winget

なんでも、Windows版パッケージマネージャという事らしいので入れてみる

  • microsoft/winget-cliReleaseページへアクセス
  • Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundleみたいなのがあるので最新版をダウンロードしてインストール
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
> winget
Windows Package Manager v1.0.11692
Copyright (c) Microsoft Corporation. All rights reserved.

WinGet コマンド ライン ユーティリティを使用すると、コマンド ラインからアプリケーションやその他のパッケージをインストールできます。

使用状況: winget [<コマンド>] [<オプション>]

使用できるコマンドは次のとおりです:
install 指定されたパッケージをインストール
show パッケージに関する情報を表示します
source パッケージのソースの管理
search アプリの基本情報を見つけて表示
list インストール済みパッケージを表示する
upgrade 指定されたパッケージをアップグレードします
uninstall 指定されたパッケージをアンインストール
hash インストーラー ファイルをハッシュするヘルパー
validate マニフェスト ファイルを検証
settings 設定を開く
features 試験的な機能の状態を表示
export インストールされているパッケージのリストをエクスポート
import ファイル中のすべてのパッケージをインストール

インストール: git

1
> winget install git

インストール: vim

1
> winget install vim

そのままだとPATH通ってないので

1
2
// 赤文字でなんか出る(NG)
> vim

先ほど確認した .ps1ファイルに aliasを追加します

メモ帳とかで、先ほど作成した、 C:\Users\username\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1を開き、

1
> vim $profile

aliasを追記

1
2
set-alias vi 'C:\Program Files (x86)\Vim\Vim82\vim.exe'
set-alias vim 'C:\Program Files (x86)\Vim\Vim82\vim.exe'

追記したら、Windows Terminal(PowerShell)で設定を反映

1
2
3
4
5
// 設定反映
> . $profile

// vimが開いたらOK
> vim

補足: .vimと.vimrc

Linuxでいう所の .vimディレクトリは、 ~/vimfilesというディレクトリが出来ているので、 autoloadとかはここに突っ込むとよい

~/.vimrcはLinuxと同じ

インストール: python3

1
> winget install Python.Python.3

vimと同じくPATHが通ってないので、 .ps1ファイルに aliasを追加します

1
2
3
4
5
6
7
8
9
10
// 追記
> vim $profile
set-alias python 'C:\Users\username\AppData\Local\Programs\Python\Python39\python.exe'

// 設定反映
> . $profile

// バージョン確認
> python --version
3.9.6

設定: pip, pipenv

pipを最新にする

1
> python -m pip install --upgrade pip

pipのPATHが通っていないので、Windowsの環境変数 Pathに以下を追加する(※このPATHは一度 pipを実行するとWARNINGとして表示されます)

1
%USERPROFILE%\AppData\Local\Programs\Python\Python39\Scripts

Windows Terminal(PowerShell)を開き直して、 pipenvを入れる

1
> pip install --user pipenv

pipenvもPATHが遠てないので、Windowsの環境変数 Pathに以下を追加する

1
%USERPROFILE%\AppData\Roaming\Python\Python39\Scripts

Windows Terminal(PowerShell)を開き直して、動作確認

1
2
3
4
5
> pip --version
pip 21.2.4 from c:\users\username\appdata\local\programs\python\python39\lib\site-packages\pip (python 3.9)

> pipenv --version
pipenv, version 2021.5.29