Pythonのバージョン切り替え(Python3.8.7とPython3.7.9の切り替えなど)と仮想環境を簡単に作るには、Anacondaが便利である。AnacondaはIntel MKLを用いたnumpyなど数値計算ライブラリを提供しており、pipのものより速いことが知られている。ただし、2021年現在、Anacondaは商用利用では有償(200人以上の組織)であり、ハードルがある。また、Anaconda特有の問題もあり、Anacondaを使わずにPythonの環境を作りたいことがある。
もう一つの観点として、オフライン環境でのインストールがある。どうしてもオフライン環境を使わなければならない場合、インターネット経由でのPythonのインストールやライブラリのインストールができないため、特別に対応する必要がある。
この記事ではWindowsでのpyenvであるpyenv-winについて扱う。
オフライン環境でのpyenv-winの始め方
- インターネットが使える環境で、githubのpyenv-winのリポジトリから、pyenv-winのzipファイルをダウンロードする。または、git cloneする。そのダウンロードしたファイルをオフライン環境に何らかの手段で移動させる。
- オフライン環境のユーザーフォルダに.pyenvフォルダを作る。たとえばユーザー名がabe_hiroshiであれば、下記のフォルダを作る。
C:\Users\abe_hiroshi\.pyenv
- 上記のフォルダにpyenv-winのファイルを解凍して置く。binファイルのパスはたとえば次のようになる。
C:\Users\abe_hiroshi\.pyenv\pyenv-win\bin
- pyenvのパスを通す。パワーシェルを立ち上げ、次のコマンドを実行する。
[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User") [System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + "\.pyenv\pyenv-win\","User") [System.Environment]::SetEnvironmentVariable('path', $HOME + "\.pyenv\pyenv-win\bin;" + $HOME + "\.pyenv\pyenv-win\shims;" + $env:Path,"User")
- 上記のフォルダの下にcacheフォルダを作る。
C:\Users\abe_hiroshi\.pyenv\cache
- cacheフォルダの下にPythonのソースコードを置く。ソースコードは公式サイトからダウンロードできる。ソースコードのパスはたとえば次のようになる。
C:\Users\abe_hiroshi\.pyenv\cache\Python-3.8.7.tar.xz
- コマンドプロンプトを立ち上げ、次のコマンドでPythonをインストールする。
pyenv install 3.8.7
- 次のコマンドを実施する。
pyenv rehash
- ここまでできれば、次のコマンドでpyenvにインストールされているPythonのリストを見られる。
pyenv versions
venvのオフラインでの使い方
次のコマンドでvenvの仮想環境を作れる。venvの仮想環境を作る前に、pyenvでPythonのバージョンを切り替えることに注意。
C:\Users\abe_hiroshi>pyenv shell 3.8.7
C:\Users\abe_hiroshi>python -m venv .venv
venvで作成した仮想環境に入るには、通常通り次のコマンドを用いる。仮想環境にうまく入れると、カレントディレクトリの前に(仮想環境の名前)が出る。
C:\Users\abe_hiroshi>.venv\Scripts\activate
ライブラリのはWheelファイルをpypiからダウンロードしてきて行う。たとえば、sixをインストールするときは次のような感じである。
(.venv) C:\Users\abe_hiroshi>pip install six-1.15.0-py2.py3-none-any.whl
wheelファイルが存在しない場合(たとえばet_xmlfileなど)、tar.gzをpipを使ってインストールする。
(.venv) C:\Users\abe_hiroshi>pip install et_xmlfile-1.0.1.tar.gz
オンライン環境
オンライン環境の場合は、pyenv-winのインストール作業のなかで、手順5および6が必要ない。もしプロキシを通す必要がある場合は、あらかじめ次のコマンドでプロキシを通しておく。
set HTTP_PROXY=http://username:password@proxy.hoge.com:8080
set HTTPS_PROXY=http://username:password@proxy.hoge.com:8080
また、オンライン環境の場合は、venvで作った仮想環境に入ったあと、wheelファイルやtar.gzファイルをダウンロードして移動させる必要がなく、直接pipを使えばよい。
コメント