仮想環境での開発について
複数の開発を進めていくと、開発プロジェクトごとに独自のライブラリをインストールすることも考えられる。
そのため、プロジェクト毎に仮想環境を作成し、開発を行いたい。
本テキストでは、その過程でいろいろ調べたものをまとめた内容です。
だいたい参考リンク先の内容を抽出しているものなので、詳しくはそちらをご参考ください…。
環境
- Windows 10
- python 3以降
Python本体のバージョン管理
参考:Pythonの複数バージョンの扱い方(Windowsの場合)
バージョン管理は自分で行う。
※pipenvはより高度な管理が可能となります。が、とりあえず、venvはpythonの標準機能となっており、取り扱いしやすいと考えてました。
※virtualenvが類似情報で出てきますが、venvはvirtualenvを元にしており、標準機能を採用しました。
Python3.3以降からはデフォルトでインストールされるPythonランチャー(py.exe)のおかげで、個々のバージョンでも指示できるようになりました。
インストールされているバージョンは--list-pathsで確認できます。
*(アスタリスク)がついているのはデフォルトに設定されているバージョンです。
> py --list-paths
Installed Pythons found by C:\WINDOWS\py.exe Launcher for Windows
-3.9-64 C:\Users\username\AppData\Local\Programs\Python\Python39\python.exe *
-3.6-64 C:\Users\username\AppData\Local\Programs\Python\Python36\python.exe
バージョンを指定してコマンド実行する場合は以下の通り。
> py pip install pipenv <= デフォルトにインストールされる
> py -3.6 -m pip install pipenv <= Pytyon 3.6にインストールされる
参照リンクの記載にある通り、以下の通り実行を切り替えることが出来る
- ファイルごとに実行バージョンを切り替える
例えば、「今までバージョン3.5を使用していて、3.6にグレードアップしたら、一部のPytyonプログラムが動かなくなった。動かなくなったプログラムだけは、3.5のまま使用したい。」そのような場合は、プログラムファイルの先頭に以下の1行を付けてください。
#!python3.5
- コマンドごとに実行バージョンを切り替える
> py -3.5 sample.py
仮想環境(venv)
顧客の開発毎に利用するパッケージは限定させたい。
このため、開発には仮想環境を用いる。
venvのコマンドは以下の通り
>py -m venv [newenvname] <= デフォルトのpythonバージョン作成される
> py -[python-version] -m venv [newenvname] <= pythonバージョン指定
> py -3.6 -m venv venv
複数のバージョンで実行環境を持つことも可能。
※ バージョンに関しては[newenvname]/pyvenv.cfgファイルに記載されている
home=C:\Users\[username]\AppData\Local\Programs\Python\Python39
include-system-site-packages=false
version=3.9.0
環境を有効にするには以下の通り。
> .\[newenvname]\Scripts\activate
pycharmでは、メニュー - [実行] - [構成の編集] - [構成]内の [Python インタープリター]のパスを[newenvname]\Script\python.exeを指定する。
これにより実行時に利用されるpythonはvenv環境となる。
作成した環境にインストールされているパッケージの確認
[newenvname]> pip freeze <= 作成直後は何も表示されないはず。
仮想環境を終了する場合
[newenvname] > deactivate
パッケージの一括インストール
ほかの環境内容を持ってくる場合、requirements.txtを利用してインストールするのが便利。
仮想環境を有効化した状態で、以下のコマンドを実行する。
[newenvname] > pip install -r requirements.txt
Pycharmに環境を追加する
- [ファイル] - [設定] - > Python インタープリター から歯車マークを選択 -> 追加を選ぶ
- Virtualenv Environment -> 既存の環境から [newenvname]\Scripts\python.exe を選択する
Pycharmでパッケージをインストールする
Pycharmを起動すると「Package requirements '…(パッケージ名)'」と出るため、「install requirements」を選択することで仮想環境(venv)内に一括インストールする。
困ったときに
PIPが使えない
原因:社内ネットワークのプロキシ
やったかな?
- プロキシをコマンドラインで設定
- インストール時に「信頼するホスト名」を指定
原因:インストール先が外部ネットワークと切り離されている
pipでダウンロードがそもそもできない時は、別の経路でファイルをダウンロード・環境でビルド&インストールする必要があります。