36
55

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Python3×VSCode】実行環境を分ける必芁が出たら行う手順仮想環境䜜成

36
Last updated at Posted at 2019-03-26

はじめに

耇数のPython3系プロゞェクトで、同じラむブラリの別バヌゞョンを䜿うケヌス片方はプロダクションでバヌゞョン固定、片方では最新バヌゞョンで詊したかったが出たため、venvを䜿っお実行環境を分けた際の芚曞です。

䞋蚘の環境の通りPython3.3以降導入枈み、か぀VSCodeで開発しおいおロヌカルデバッグずかロヌカルテストしおいる人で、止むを埗ず実行環境分けたい人向けです。

環境

  • Mac 事情があり未だHigh Sierra
  • Python3.3以降 今回は3.7で行なっおいたす
  • Visual Studio Code バヌゞョン1.32.3
    • Python拡匵ms-python.pythonむンストヌル枈み

なお、Python3の環境構築は省略したす。brewでもpyenvでも奜きなので入れれば良いず思いたす

仮想環境の構築ずVSCodeの蚭定手順

Python3.3以降では、仮想環境構築のためのモゞュヌルが暙準で搭茉されおいる。
→venv

これを利甚し぀぀、なるべく最小手順で、混乱のない環境になるよう考えた結果以䞋ずなりたした。

仮想環境管理甚ディレクトリ䜜成

Pythonの仮想環境は、ディレクトリの圢匏で䜜成される。
このディレクトリを䜜成する先ずしお、仮想環境管理甚のディレクトリを䜜成する。

別にやらなくおも良いかず思うかもしれないが、以䞋の理由で匷く掚奚したい。

  • あちこちに仮想環境ディレクトリがあるず管理できなくなる
  • VSCodeに仮想環境管理甚ディレクトリの蚭定をする埌述こずで、デバッグ、テスト環境蚭定のハヌドルが䞋がる
mkdir ~/.local/share/virtualenvs

仮想環境の䜜成

python -m venv ~/.local/share/virtualenvs/venv1

仮想環境の䜜成は䞊蚘コマンドで終わり、 ~/.local/share/virtualenvs/venv1 に分離されたPython環境ができる。
コマンドラむン䞊で、この仮想環境を䜿いたければ

source ~/.local/share/virtualenvs/venv1/bin/activate

ずすれば、仮想環境䞊のPythonが実行されるようになる。
( which python などを実行すれば、 python のパスが倉わっおいるのが確認できる)

この状態で、

pip install requests

などずすれば、 仮想環境䞊 ~/.local/share/virtualenvs/venv1/lib/python3.7/site-packages にラむブラリがむンストヌルされる。

VSCodeでの仮想環境管理甚ディレクトリを基本蚭定に远加

Command + Shift + p
→ 「setting」などず入力
→ 「基本蚭定: ナヌザヌ蚭定を開く / Preferences: Open User Setting」をクリック

たたは

メニュヌから「Code」
→「基本蚭定」
→「蚭定」

の操䜜で、「蚭定」画面を開く。

「蚭定の怜玢」ボックスに「python.venvpath」ず入力する。
→Python: Venv Path ずいう蚭定項目が出るので、蚭定倀のボックスに先ほど䜜成した仮想環境管理甚ディレクトリのパス「~/.local/share/virtualenvs」を入力する。

VSCodeでのPython実行環境遞択

Python拡匵をむンストヌルしおいる状態で、Pythonのプロゞェクトを開くず
巊䞋にPythonの実行環境が衚瀺されおいるず思いたす。

image.png
   ↑これです

仮想環境管理甚ディレクトリをVSCodeに蚭定した埌に、これをクリックするず先ほど䜜成した仮想環境が䞀芧に珟われたす。

image.png

ここから先ほど䜜成した仮想環境今回の堎合はvenv1を遞択したす。
するず、 .vscode/setting.json が自動生成され、python.pythonPathに仮想環境のPythonが蚭定されたす。

ここたで終われば、普段の通りの䜿い方でデバッグ環境やテスト環境、補完などが仮想環境䞊で実行されるようになっおいるはずです。

おたけ: pipenvに぀いお

倧抵の堎合は、䞊蚘のvenvのみの運甚でも十分だず思いたすが、

  • Pythonの䟝存パッケヌゞをハッシュレベルの厳密性を持っお管理したい
  • 耇数の開発者で、簡単に同じ仮想環境を䜿えるようにしたい
  • 䞀連の䜜業仮想環境䜜成、䟝存パッケヌゞむンストヌルなどを統䞀したコマンドで扱いたい

ずいう芁望があれば、 pipenv を䜿うず良いず思いたす。

嬉しいこずに、VSCodeのPython拡匵が察応しおおり、pipenvを実行したワヌクスペヌスでは .vscode/setting.json にpython.pythonPath が自動で远加されたす。

サクッず小さめに玹介しおおきたす。

むンストヌル方法

pip install pipenv

仮想環境䜜成

仮想環境を䜜成したいディレクトリ配䞋で

pipenv --three

python3の仮想環境が䜜成されたす。 (デフォルトで ~/.local/share/virtualenvs 配䞋にできおいたす。)
たた、 Pipfile ずいう管理ファむルがディレクトリ配䞋にできおいたす。

パッケヌゞむンストヌル

pipenv install requests

Pipfileに远加されたパッケヌゞ名が远蚘されたす。
たた、Pipfile.lockが䜜成され、远加パッケヌゞ含む党おの䟝存パッケヌゞのハッシュが蚘茉されたす。

Pipfile, Pipfile.lock を別の環境に持っおいきpipenv installするず、
党く同じ環境ができるずいうこずになりたす。

コマンドラむンで仮想環境実行

pipenv shell

activateのラッパヌずいう理解。

おたけその Python local packages directory

぀いでなので远蚘で曞きたす。

少し前に話題になったGoodbye Virtual Environments?で取り䞊げられおいた、PEP582はロヌカルパッケヌゞディレクトリに䟝存パッケヌゞを入れおおき、Pythonコマンドは䞀番最初にロヌカルパッケヌゞディレクトリを参照しに行くずいうものです。vendoringやnode_modulesに近いもの抂念だず理解しおたす。

仮にこれが採甚されるず、

ロヌカルパッケヌゞディレクトリを䜜成

mkdir __pypackages__

ロヌカルパッケヌゞディレクトリにパッケヌゞむンストヌル

python -m pip install requests

のような運甚になるず想定されたす。採甚されればpip偎でサブコマンド䜜るかもしれたせんが
ですが、ただただ Draft の段階なのでしばらくは泚芖かなず思っおいたす。

36
55
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
36
55

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?