はじめに
Windows+gVim+pipenv環境ではじめてPythonを開発するので、その時に行ったことをまとめました。
gvim上でオムニ補完と静的コード解析ができるまでがゴールです。
ChocolateyGetインストール
管理者権限のpowershellで下記実行
Set-ExecutionPolicy RemoteSigned
install-packageprovider ChocolateyGet
gitインストール
管理者権限のpowershellで下記実行
install-package git -providerName ChocolateyGet
Pythonインストール
管理者権限のpowershellで下記実行
install-package python -providerName ChocolateyGet
pipenvのインストール
pip install --upgrade pip
pip install pipenv
gvimインストール
kaoriya本家からgvimをダウンロードし解凍する。
https://www.kaoriya.net/software/vim/
$VIM(gvim.exeのあるフォルダ)をPATHに追加する
管理者権限で下記powershell実行
(例)kaoriya-vimをCドライブ直下に解凍した場合
$SystemPath = [System.Environment]::GetEnvironmentVariable("Path", "Machine")
$SystemPath += ";c:\vim81-kaoriya-win64"
[System.Environment]::SetEnvironmentVariable("Path", $SystemPath, "Machine")
gvimプラグインのインストール
下記プラグインを導入する。
https://github.com/davidhalter/jedi-vim
https://github.com/w0rp/ale
※$VIMはgvim.exeのあるフォルダ
※プラグインマネージャを利用している場合はそっちで導入
cd $VIM/plugins
git clone --recursive https://github.com/davidhalter/jedi-vim.git
git clone https://github.com/w0rp/ale.git
pythonファイルを開いたときのオムニ補完をjediに設定するようvimrcに追記
autocmd FileType python setlocal omnifunc=jedi#completions
gvim用のpipenvを作成し、flake8をインストールする
※$VIMはgvim.exeのあるフォルダパス
cd $VIM
mkdir gvim_pipenv
cd gvim_pipenv
$env:PIPENV_VENV_IN_PROJECT = 1
pipenv --three
pipenv install flake8
gvim用のpipenvをgvimから使えるようvimrcに追記する
let $PATH = $PATH .";". $VIM ."\\gvim_pipenv\\.venv\\Scripts"
プロジェクト作成
mkdir newproject
cd newproject
pipenv --three
プロジェクトに必要なライブラリをインストール
pipenv install hogehoge(必要なライブラリ)
pipenvの仮想環境に入る
pipenv shell
(以後の操作はこの仮想環境内で行う)
gvim起動
※pipenv仮想環境内で実行
gvim main.py
実行
※pipenv仮想環境内で実行
python main.py
豆知識
WindowsはPythonにPATHを通さなくてもPythonランチャーからPythonやモジュールの実行が可能。しかし、pipenvをpythonランチャーから起動すると何故かエラーがでるのでPATHを通してpipenvを実行する必要がある。ChocolateyGetからインストールすると自動でPATHが通る。
補完をするモジュールjediはjedi-vimの中にサブモジュールとして含まれているので別途インストールする必要はない
python-language-serverとvim-lspを用いても補完が可能だが、jedi-vimと違いpython-language-serverをシステムにインストールする必要があり、プロジェクトにインストールしたライブラリに対しての補完が効かない(なにかやり方はあるかもしれない)
pythonファイルをgvimで開いたときにそのpythonファイルが含まれるpipenv仮想環境に自動で入ってくれるプラグインvim-pipenvがあるが、Windowsには未対応である模様