2021年時点での情報です。
Swiftをインストールする手順をまとめます。
Swift for TensorFlow (S4TFと略すらしいです) が気になって1のでSwiftに入門したのですが、残念ながらS4TFはアーカイブされてしまいました。
S4TFのインストール手順も記念に残してあります。
まずWindowsでローカルにSwiftの環境を構築する方法としては以下のものがあります。
- Windowsネイティブで構築する
- WSL上で構築する
- Dockerを利用する
1の方法はSwiftPMのWindowsサポートにより現実的になってきています。
1の方法で環境構築したい場合はGetting Started On Windowsを参照してください。
この記事では2の方法を解説します。
3の方法もWSLの場合と同じくDockerの環境をVS Codeで開けるようなのでLSPの設定の部分などある程度参考になると思います。
VS Codeは事前にインストールしておいてください。
WSLの導入
これについては紹介している記事が多数あるので私が参考にした記事を紹介するだけにしておきます。
まず公式のWindows 10 用 Windows Subsystem for Linux のインストール ガイドに従ってWSLまたはWSL2をインストールしてください。
Swiftでサポートされるディストリビューションは Download Swift から確認できます。
迷ったらWSL2とUbuntuの最新LTSでいいと思います。
次に好みに合わせてセットアップしましょう。
Ubuntuなら『Ubuntu 18.04 LTSのセットアップ』が18.04に限らず参考になると思います。
以上でWSLの準備は完了です。
VS CodeとWSLの連携
VS CodeにWSLの拡張機能を入れておくとファイル操作やテキスト編集がGUIでできるようになります。
左のバーの一番下にある「田」のような形のマークをクリックすると拡張機能画面が現れます。
そこで「WSL」と検索して出てくる「Remote - WSL」をインストールしてください。
するとVS Codeのウィンドウの左下に「><」のようなマークが表示されるようになります。
そこをクリックし、「Remote-WSL: New Window」を選択するとWSLに接続したVS Codeを開くことができます。
また、WSL上で code ${ファイル名}
と入力することでもVS CodeでWSLのファイルを開くことができます。
Swiftのインストール
通常のSwiftのインストールとS4TFのインストールを順に解説します。
通常のSwiftのインストール
参考: Installing Swift
エディタでSwiftコードの補完をするには SourceKit-LSP が必要ですが、Swift 5.1以降で同梱されるようになったので、それ以降のバージョンをインストールすると仮定して進めます。
また、ここでは作業ディレクトリは /home/${ユーザー名}/
としておきます。(『UNIX系OSのディレクトリ構造表』によると/opt
以下にインストールするのが適切な気がしますが、パーミッションの話を回避するためにこの記事ではホームディレクトリにインストールします。)
まずGetting Started On Linuxで指定されているコマンドを入力して依存ライブラリをインストールしてください。
次に「Download Swift」から自分のOSに合ったSwiftをダウンロードします。
wget ${SwiftのダウンロードURL}
そして Swift
ディレクトリを作成し、そこにダウンロードしたツールチェインを展開します。
mkdir swift
tar -zxvf ${ダウンロードしたファイル名} -C swift/
ダウンロードしたSwiftにパスを通しましょう。
ホームディレクトリにある .bashrc
というテキストファイルがシェルの起動時に実行されるので、そこにパスを通すコマンドを追記し、シェルを再起動しましょう。
echo 'export PATH=/home/${ユーザー名}/swift/usr/bin:"${PATH}"' >> .bashrc
うまくいっていれば swift --version
と入力すると現在のバージョンが表示されるはずです。(単に swift
と入力すると本来はREPLが起動するようですが、WSL1ではうまく動作しません: REPL not working on WSL 18.04 Ubuntu)
S4TFのインストール
参考: Install Swift for TensorFlow
GPUを利用する場合は予めCUDAとcuDNNをインストールしておいてください。
WSL2のみがGPUに対応していることに注意しましょう。
現在対応しているバージョンは次のようになっています。(https://github.com/tensorflow/swift/blob/master/Installation.md#linux)
- CUDA Toolkit 10.1, 10.2, or 11.0
- CuDNN 7.6.0 onwards (CUDA 10.1)
まず「Install Swift for TensorFlow」からツールチェインをダウンロードし、パスを通すところまでは同様にします。
そして必要なものをインストールします。
sudo apt-get install clang libpython-dev libblocksruntime-dev
swift --version
と入力し、うまくインストールされたか確認してください。
うまくいかない場合さらに他の依存のインストールも必要かもしれません。
VS CodeにSwiftの拡張機能を導入する
公式の拡張機能もあるようなのですが、今のところ利用するためにビルドが必要とのことなので「Maintained Swift Development Environment (SDE)」を利用することにします。
WSL Remoteのウィンドウを開き、拡張機能を「Swift」で検索するとSDEが出てくるのでInstall on WSLからWSLにSDEをインストールしてください。
これでSDEのインストールができたので、次はSDEの設定です。
ファイル/基本設定/設定
から設定画面に入り、Swiftで検索すると出てくる項目から次のものを設定してください。
- Swift > Path: Swift_driver_bin (上記の手順でインストールしている場合
/home/${ユーザー名}/swift/bin/swift
) - Sde: Language Server Mode (sourcekit-lsp)
- Sourcekit-lsp: Server Path (上記の手順でインストールしている場合
/home/${ユーザー名}/swift/bin/sourcekit-lsp
)
これでSwiftファイルを開くとSDEが機能するようになったはずです。
おわりに
他にもVS CodeにGitの拡張機能を入れたり、タスクランナーを設定することでより快適にコーディングできるようになります。
Windows上で気持ちよくSwiftプログラミングをしましょう!
-
S4TFの紹介記事: 『Swift for TensorFlowと新たなプログラミングモデル』 ↩