SE(たぶん)の雑感記

一応SEやっている筆者の思ったことを書き連ねます。会計学もやってたので、両方を生かした記事を書きたいと考えています。 でもテーマが定まってない感がすごい。

(Windows)Pythonの仮想環境を使えるよう、Visual Studio Codeでの開発環境を整える

Pythonの開発環境を、徐々に改良しています。

hiroronn.hatenablog.jp

上の記事を書いたときは、Visual Studio 2017を使っていましたが、今は Visual Studio Codeを使っています。

これまでは、インストールしたPythonをそのまま利用していたのですが、仮想環境なるものがあるので、導入してみよう!というのが、今回のお話です。

なお、Python始めて2か月とかなので、拙い内容であるのはご容赦ください。

環境

ツール バージョン
OS Windows10 Professional 64bit(Surface Pro 4
Visual Studio Code 1.15.1
Python 3.6.2

linterとして、Pylintを使います。Visual Studio Codeも、インストールを求めてきます。

開発時フォルダ構成として、

開発フォルダ
 - Python仮想環境

とします。

前提

donjayamanne.github.io

Python仮想環境の作成

これは、いろんな記事を見かけましたが、Python3.6なら、チュートリアル通りにやれば良いようです。

12. 仮想環境とパッケージ — Python 3.6.3 ドキュメント

手順は以下の通りです。

  1. Powershellを開く*1
  2. Set-Location または cd 等で、仮想環境を作成したい、一つ上のフォルダに移動する
    1. python3 -m venv <<仮想環境名>> と入力する
  3. python -m venv <<仮想環境名>> と入力する

Windowsで、PythonのインストールフォルダにPATHが通っていることが前提となる

…これだけです。
これを行うと、上で指定した「仮想環境名」のフォルダが作成されます。

なお、作成場所を失敗して、消したい場合は、上記フォルダを削除すればいいです。簡単。

稼働確認

仮想環境が正常に作成されたか、稼働確認します。

  1. 上記「仮想環境名」のフォルダに、Set-Location等で移動する
  2. そのフォルダから、.\scripts\Activate.ps1と入力し、実行する*2
  3. 先頭に(仮想環境名)が付けば成功

イメージは以下の通りです。(仮想環境名:myenv)

f:id:hiroronn:20170906082047p:plain

f:id:hiroronn:20170906082104p:plain

先頭に、(仮想環境名)と表示されます。
こうなれば環境は作成されています。

ファイル書き換え

日本語でうまく動作しない箇所があるので、書き換えます。
なお、普通にPythonをインストールした場合も必要です。

これに関しては、以下のリンクを参照してください。

WindowsのVisualStudioCodeでPython - PukiWiki

Pythonインストール先/Lib/site-package/pip/compat/init.pyの75行目,

return s.decode('utf_8')

return s.decode('cp936')

に書き換えます。

pylintインストール

このまま進めても、Visual Studio Codeがlint入れろと要求してくるので、先に入れます。

Powershellで、仮想環境を開いた状態で、

pip install pylint

と入力します。

すべてがうまくいっていれば、ここでインストールできるはずです。
上のファイル書き換えを行わないと、ここでエラーが発生します。

Visual Studio Code設定

次に、Visual Studio Codeから、仮想環境を見るように、設定を行います。
といっても、簡単です。

  • Visual Studio Codeを開き、画面左下の歯車をクリックし、「設定」を選択

f:id:hiroronn:20170906083226p:plain

"python.pythonPath": "<<絶対パス>>\\<<仮想環境名>>\\Scripts",
"python.linting.pylintPath": "<<絶対パス>>\\<<仮想環境名>>\\Scripts\\pylint.exe"

私の場合、開発フォルダの下に仮想環境があるようにしているので、以下のようになります。

f:id:hiroronn:20170906083627p:plain

絶対パスの部分を${workspaceRoot}にしています。*3

Visual Studio Code での稼働確認

設定が全て終わったら、実際にPythonのコードを書いて、挙動を確認しましょう。

1.ワークスペースの下に、index.pyというファイルを作る*4
2.適当にソースを書く

といっても難しいので、適当にサンプルを用意しました。

import functools

def main():
    '''メイン'''
    val = functools.reduce((lambda a, b: a + b), range(1, 101))
    print(val) 

if __name__ == '__main__':
    main()

3.index.pyに書いて保存する
4.すると、Visual Studio Codeの「問題」に、Pylintの警告が出る

f:id:hiroronn:20170906200355p:plain

警告が出れば、Pylintは正常に稼働しています。

5.F5等で、デバッグ実行する
6.ブレークポイント等設定し、正常に止まることを確認する

(ついで)仮想環境で実行できているか見る方法

上記で動いたら、以下のソースを実行してみてください。

print(sys.exec_prefix)

これで出力されたパスが、作成した仮想環境のものであれば、問題なく仮想環境で実行されています。
以下に記載があります。

29.1. sys — システムパラメータと関数 — Python 3.6.3 ドキュメント

おわりに 私が嵌った問題

おおむね、上記の通りに作業したのですが、なぜかwraptの中が、ほとんど空でした。
何度やっても、仮想環境のPylintが起動せず、それを調べていたときに発見しました。 pipでアンインストール後、再度インストールしたところ、正常動作するようになりました。

同じ状況になった人とかいらっしゃるのでしょうか…?

まとめ

Let's python life!を目指しましょう。
Visual Studio Codeは無料だし、手早く始めるなら、大変便利だと思います。

手順に意見や質問あれば、ツッコミいれてください!


修正履歴

日付 内容
2017/09/07 誤字脱字、レイアウトミスを修正
2017/10/18 Python仮想環境の作成」の誤りを修正

*1:コマンドプロンプトでも可能

*2:コマンドプロンプトを使用する場合、activate.batを実行する

*3:Pylintのパスも指定しているが、指定しなくても動く。pipでインストールされていればよいのかもしれない

*4:エンコードUTF-8Visual Studio Codeで作れば、既定で作成される