なんか、普通にダウンロードしてきて pip をインストールするだけだとうまく動かなかった。
具体的には .\Scripts\pip.exe -V
を実行すると以下のエラーが発生して pip
が使えない。
Traceback (most recent call last): File "D:\obj\windows-release\37win32_Release\msi_python\zip_win32\runpy.py", line 193, in _run_module_as_main File "D:\obj\windows-release\37win32_Release\msi_python\zip_win32\runpy.py", line 85, in _run_code File "C:\dev\python374\Scripts\pip.exe\__main__.py", line 5, in <module> ModuleNotFoundError: No module named 'pip'
なので、色々調べて試してみた結果を残しておく。
基本的には、以下のURLに記載されていることを実行すればうまくいくようだった。
超軽量、超高速な配布用Python「embeddable python」 - Qiita
ただ、3.6環境なので、3.7環境でも同じかどうか試してみたいと思う。
今回は自身のPCにすでにPython3.7を入れてしまっていたので、Dockerを使って環境を構築する。
Docker上でWindowsコンテナを作成するやり方は以下の記事を参考にすること
DockerでWindowsコンテナを起動する為に必要な設定 - bamch0h’s diary
今回は powershell
を使う、 cmd
だと Webからファイルをダウンロードしたり、zipファイルを解凍したりすることを
コマンドライン上からするのは難しそうだったので、 powershell
を使うことにした。
Vim のインストール
後でファイルを編集しないといけないのでVimをインストールする。 netupvim
便利。
PS C:\dev> wget https://github.com/koron/netupvim/releases/download/v1.4.1/netupvim-v1.4.1.zip -o netupvim.zip PS C:\dev> Expand-Archive -Path .\netupvim.zip -DestinationPath vim PS C:\dev> cd vim PS C:\dev\vim> .\netupvim.exe PS C:\dev\vim> $Env:Path += ";C:\dev\vim"
Python のインストール
PS C:\dev> wget https://www.python.org/ftp/python/3.7.4/python-3.7.4-embed-win32.zip -o python374.zip PS C:\dev> Expand-Archive -Path .\python374.zip -DestinationPath python374
python37._pth の編集
PS C:\dev> cd .\python374\ PS C:\dev\python374> vim .\python37._pth
以下のように編集。最下行の #import site
のコメントアウトを解除するだけ。
python37.zip . # Uncomment to run site.main() automatically import site
pip の編集
PS C:\dev\python374> wget "https://bootstrap.pypa.io/get-pip.py" -O "get-pip.py" PS C:\dev\python374> .\python.exe get-pip.py
pip が使えるかのチェック
PS C:\dev\python374> .\python.exe -m pip install numpy
最後に Successfully installed numpy-1.17.2
のような表示がでていれば pip
が動いてる。
まとめ
Windows 10 で
python-embeddable
を使ってpip
を使うにはpython37._pth
の編集が必要。3.6で発生していた問題は3.7でも発生するようなので注意。