この記事ではpythonの開発環境構築をpyenv・venvを使って行い、vscodeから同一の開発環境でpythonプログラムを実行する方法を解説します。
メリットとしてはpythonのバージョンやライブラリ管理を利用端末ごとに行わなくてもデバッグやプログラム実行が可能になることです。dropbox等のクラウドストレージアカウントさえあれば外出先でも同じ環境で開発ができるって便利ですよね。
デメリットはdropboxにvenvで組み上げて使うので処理速度が落ちることです。ですが高速な処理が不要な場合はこの方法でも十分開発可能です。
pythonの開発環境の作り方は多岐にわたりますが忘備録も兼ねてこんな方法もあるんだなということで記事にしてみました。
今回は同一ユーザー名端末のPCとwindowsを用いた環境構築の解説を行います(カスタマイズすればユーザー名端末やOSも変更できるようですが確認はしてないのでひとまずこの前提で進めます)。
まずはpythonをインストールしてpyenvを導入する
入門書などではいきなりpythonを端末にインストールし、そこに様々なライブラリをインストールして開発することもできますが、そうした方法を用いるとバージョン変更が頻繁に起こるpythonでは安定した環境で開発を行うことができなくなってしまいます。
そこで、pyenvと呼ばれるバージョン管理ライブラリを利用してpythonのバージョン管理を行います。
とはいえ、pyenvをインストールするためにもpython開発環境が必要なのでまずは一度手持ちの端末にpythonをインストールします。
python公式サイトでまずはpythonをインストール>>
pythonをインストールした後のpyenvのインストール手順は以下の通り。
1 2 |
python -m pip install --upgrade pip pip install pyenv-win --target %USERPROFILE%\.pyenv |
↑windows環境でコマンドプロンプトを開いて上記の命令を順番に実行しましょう。
python環境によっては、
1 2 |
py -m pip install --upgrade pip pip install pyenv-win --target %USERPROFILE%\.pyenv |
でないと動かないかもしれません。
この2つのコマンドを打ち込むと端末のUser名フォルダ直下の隠しフォルダで.pyenvができます。
pyenv-winのpathを通す
次にpyenvのパスを通します。
1 |
[System.Environment]::SetEnvironmentVariable('path', $env:USERPROFILE + "\.pyenv\pyenv-win\bin;" + $env:USERPROFILE + "\.pyenv\pyenv-win\shims;" + [System.Environment]::GetEnvironmentVariable('path', "User"),"User") |
↑少々長いですがこちらのコマンドをコマンドプロンプトで実行します。
↑このような環境変数パスが通ればOKです。ユーザー編集可能な環境変数のPathの欄にこうした二つの環境変数ができてればOKです。
この状態でpyenvとコマンドプロンプトで打ち込んで以下のような表示が確認できればOKです。
pyenvは以下のようにUsers/ユーザー名のフォルダに.pyenvフォルダとして構築されている。
↑このような形でフォルダが構築されています。
また、パスがちゃんと通ってるかを確認する方法としては、以下のコマンドをコマンドプロンプトで打ち込みます。
1 |
pyenv --version |
↑このコマンドを打ち込んだ時ちゃんとパスが通っていれば
↑このようにpyenvのバージョンだけが表示されます。パスが通っていない場合は
↑このようにパスが通ってないことが示されます。
もしこうなっていた場合は環境変数パスの設定を見直す必要があります。コマンドプロンプトからの命令入力で上手くいかない場合はwindowsの環境変数設定から手入力で打ち込んでみたり、ネットの他の情報源も駆使してご自身の環境に合う設定を行ってください。
環境設定はどうしてもそれまでに構築したパスや開発環境設定の影響が出てしまうことがあるので自力での解決が求められます。
ひとまずパスが通ったことを確認したということで次へ進みます。
pyenvを使ってpython開発環境を追加する
さて、次にこのpyenvを使ってpythonのバージョン管理を行います。
1 |
pyenv install -l |
↑このコマンドをコマンドプロンプトで入力してください。
すると、pyenvで現在インストール・管理可能なpythonバージョンが表示されます。
↑初期のままだとインストールできるpythonバージョンが古いままなのでこのpyenvのアップデートを行います。
1 |
pyenv update |
↑この命令をコマンドプロンプトで入力。
アップデートには少々時間がかかります。
アップデートが完了したら目的のバージョンのpythonをインストールします。
1 |
pyenv install 3.10.10 |
↑こちらの命令をコマンドプロンプトで打ち込みます。
↑するとpythonのインストールが始まります。
このような方法で複数のpythonをインストールすることが可能です。
一般にその端末で使いたいバージョンの設定や個別のフォルダ内で使いたいpythonバージョンの設定などが可能です。
1 |
pyenv versions |
↑この命令を入力すればpyenvで端末にインストールしたpythonのバージョンが全て表示されます。
*マークが付いているバージョンが標準利用するバージョンです。
標準利用するバージョンを変更したい場合は
1 |
pyenv global 3.10.10 |
↑このような命令を入力すれば変更できます。
↑このように標準利用するバージョンを変更できました。
また、今いるフォルダだけ利用するバージョンを変更したい場合は
1 |
pyenv local 3.10.10 |
↑この命令をコマンドプロンプトに打ち込めばOKです。
.python-versionというファイルが作られ、そこにこのフォルダ内で使うpythonバージョンはこれだよ!という情報が記載されます。
↑このようにたしかにpyenv localを行ったフォルダは他のフォルダとは違うpythonバージョンが使われることがわかります。
ここまででpyenvの設定や操作方法の解説は終了です。
次はインストールするライブラリの管理などをvenvを用いて行います。
venvで仮想環境を構築する
pythonの標準ライブラリのvenvを使います。
1 |
python -m venv .venv |
↑こちらの命令を仮想環境を作りたいフォルダに移動してからコマンドプロンプトに入力します。もし動かない場合はpythonをpyにしてください。
例えば、dropbox内に移動してpython開発したいフォルダ内でこのコマンドを打ち込めばdropbox内で開発環境を構築できます。
venvで作った仮想環境を起動させてからインストールしたい外部ライブラリをインストールして使えばOKです。
1 |
.venv/Scripts/activate.bat |
↑このような形ですね。venvが起動すると以下のようにコマンドプロンプトで(.venv)と表示されます。
↑空白箇所はあなたが使いたい環境などで変えてください。この例では筆者はdropbox\pythonというフォルダ内にプロジェクト用フォルダを作り、その中でvenv環境を構築しています。
この状態で使いたいライブラリなどを普段通りpipなどでインストールしていけばその仮想環境だけで使えるようになります。
プロジェクトフォルダ毎にvenvを用意して使うようにすればライブラリのバージョンが競合してしまうこともなくなりますし、常に同じ環境で開発を進めることができます。
venv環境から出るときは
1 |
deactivate |
↑この命令を打ち込めばOKです。
↑(.venv)の表示が消えています。
vscodeでvenv環境のインタープリタを呼び出す
さて、最後にvscodeからvenv環境のインタープリタを呼び出してdropboxを使って複数端末で同じ開発環境を共用してみます。
vscodeのインストールはこちらから行えます。
vscodeのインストールが終わったら拡張機能でpythonを導入します。このあたりのvscodeの細かい操作方法は別途勉強したり慣れてください。
vscodeを起動して左下の歯車マークを選択 > 拡張機能を選択。
↑様々な便利な拡張機能を追加できますが、ここではまずPythonを追加します。
↑多少表示は異なると思いますがvscodeでpythonファイルを編集しているとこのような画面になっているはずです。このエディタの右下の欄でpythonインタープリタのバージョンが表示されています。
この画像では既にvenv内のインタープリタが選択されていますが、選択されていない場合は自分で選択する必要があります。
この部分をクリックすると候補となるpythonインタープリタを選択可能になります。
もしvenvのインタープリタを選ぶことができない場合は、以下のようなpyvenv.cfgを編集してパスを調整する必要があります。
筆者のpyvenv.cfgは以下のようになっています。
↑このように、記事の序盤でインストールしたUsers\直下にインストールしたpyenv\pyenv-winの中にあるpythonバージョンがpythonインタープリタを実行する際に選択されていることがわかります。また、venv環境を構築したフォルダでそれを使うことがcommandとして定義されています。
このような手順で開発環境を構築すれば
- pyenvによるpythonのバージョン管理
- venvによる外部ライブラリバージョン管理
- vscodeでのコンパイル&実行
が実現できます。また、上記の環境構築の際のユーザー名やパスを揃えておけばvenvを構築するフォルダをdropboxなどのクラウドストレージに設定し複数端末で使いまわすことが可能になります。