0
3

More than 5 years have passed since last update.

Windows+gVim+pipenvでPython開発ことはじめ

Last updated at Posted at 2019-05-03

はじめに

Windows+gVim+pipenv環境ではじめてPythonを開発するので、その時に行ったことをまとめました。
gvim上でオムニ補完と静的コード解析ができるまでがゴールです。

ChocolateyGetインストール

管理者権限のpowershellで下記実行

Set-ExecutionPolicy RemoteSigned
install-packageprovider ChocolateyGet

gitインストール

管理者権限のpowershellで下記実行

install-package git -providerName ChocolateyGet

Pythonインストール

管理者権限のpowershellで下記実行
※最新のpython(現在では3.7.8)がインストールされる


install-package python -providerName ChocolateyGet

※3.6も追加でインストールする場合

Install-Package -Force -RequiredVersion 3.6.8 -ProviderName ChocolateyGet python

pipenvのインストール

pip install --upgrade pip
pip install pipenv

gvimインストール

kaoriya本家からgvimをダウンロードし解凍する。

# kaoriya-vimをCドライブ直下に解凍する場合
Invoke-WebRequest -uri https://github.com/koron/vim-kaoriya/releases/download/v8.1.1048-20190325/vim81-kaoriya-win64-8.1.1048-20190325.zip -OutFile $env:temp\gvim.zip
Expand-Archive $env:temp\gvim.zip -DestinationPath C:\
remove-item $env:temp\gvim.zip

$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用のembeddedpythonを設置する

kaoriyaのvimはでデフォルトでpython37にリンクされているのでgvim専用にgvimで利用するライブラリを入れたembeddedpythonを設置しておく

Invoke-WebRequest -uri https://www.python.org/ftp/python/3.7.3/python-3.7.3-embed-amd64.zip -OutFile $env:temp\embedpython.zip
Expand-Archive $env:temp\embedpython.zip -DestinationPath C:\vim81-kaoriya-win64\python-3.7.3-embed-amd64
remove-item $env:temp\embedpython.zip
cd C:\vim81-kaoriya-win64\python-3.7.3-embed-amd64
expand-archive python37.zip
remove-item python37.zip
Rename-Item python37 -newname python37.zip
Write-Output "import site"|out-file -Append -Encoding ascii "C:\vim81-kaoriya-win64\python-3.7.3-embed-amd64\python37._pth"
wget "https://bootstrap.pypa.io/get-pip.py" -O "get-pip.py"
.\python.exe get-pip.py
.\python.exe -m pip install flake8

gvim用のembeddedpythonをgvimから使えるようvimrcに追記する

let $PATH = $PATH . ";" . $VIM . "\\python-3.7.3-embed-amd64"
let $PATH = $PATH . ";" . $VIM . "\\python-3.7.3-embed-amd64\\Scripts"

プロジェクト作成

※バージョン3.7の環境を作成する場合

mkdir newproject
cd newproject
pipenv --python 3.7

プロジェクトに必要なライブラリをインストール

pipenv install hogehoge(必要なライブラリ)

pipenvの仮想環境に入る

pipenv shell

(以後の操作はこの仮想環境内で行う)

gvim起動

※pipenv仮想環境内で実行

gvim main.py

実行

※pipenv仮想環境内で実行

python main.py

豆知識

WindowsはPythonにPATHを通さなくてもPythonランチャーからPythonやモジュールの実行が可能。
python公式からダウンロードしたインストーラからPATHを通さずインストールしてpythonランチャーからpipenvを利用すると何故かエラーとなる
ChocolateyGetからインストールすると自動でPATHが通るが、PATHが通っていてもいなくてもpythonランチャーからpipenvの起動可能

補完をするモジュールjediはjedi-vimの中にサブモジュールとして含まれているので別途インストールする必要はない

python-language-serverとvim-lspを用いても補完が可能だが、jedi-vimと違いpython-language-serverをシステムにインストールする必要があり、プロジェクトにインストールしたライブラリに対しての補完が効かない(なにかやり方はあるかもしれない)

pythonファイルをgvimで開いたときにそのpythonファイルが含まれるpipenv仮想環境に自動で入ってくれるプラグインvim-pipenvがあるが、Windowsには未対応である模様

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3