【エラー対策】PyInstallerをオフラインインストールする方法
Pythonライブラリを導入する時、プロキシで弾かれるためオフラインでインストールをしています。
いくつかのライブラリはインストールすることができたのですが、PyInstallerを導入する際にエラーが出てハマったので、その理由と解決策を紹介したいと思います。
オフラインインストールする方法
初めにオフラインインストールする方法について簡単に説明します。
通常Pythonであれば、コマンドラインで「py -m pip install ライブラリ名」と打つことで自動的にライブラリをダウンロードしてインストールしてくれます。
ところが、主に会社などでpipを使うとプロキシによって通信がブロックされてしまうことがあります。
こうした場合にはオフラインインストールすることで解決できます。
PyPiからインストールしたいライブラリ(whlもしくはtar.gzファイル)をダウンロードし、オフラインでインストールを行います。
py -m pip install --no-index --find-links=フォルダ名 ライブラリ名
pipする際に–no-index(ローカルディレクトリを参照)、–find-links(ディレクトリの参照先)の2つのオプションを追加することでオフラインインストールすることができます。
PyInstallerのインストール時にエラーが発生
いくつかのライブラリはオフラインインストールできたのですが、PyInstallerのインストールではエラーが出てハマりました。
<環境>
OS:Windows10
Python:3.9.4
pip:21.1.1
wheel:0.36.2
PyInstaller:4.3
py -m pip install --no-index --find-links=downloads pyinstaller
ライブラリをdownloadsフォルダに保存し、上のコマンドを実行したところ下記のエラーが発生しました。
C:\Users\***>py -m pip install –no-index –find-links=downloads pyinstaller Looking in links: downloads Processing c:\users*\downloads\pyinstaller-4.3.tar.gz
エラーメッセージ
Installing build dependencies … error
ERROR: Command errored out with exit status 1:
command: 'D:\ProgramFiles\Python\Python39\python.exe’ 'C:\Users\***\AppData\Local\Temp\pip-standalone-pip-5x74odeq__env_pip__.zip\pip’ install –ignore-installed –no-user –prefix 'C:\Users\***\AppData\Local\Temp\pip-build-env-hg2evgp0\overlay’ –no-warn-script-location –no-binary :none: –only-binary :none: –no-index –find-links downloads — wheel setuptools
cwd: None
Complete output (3 lines):
Looking in links: downloads
ERROR: Could not find a version that satisfies the requirement wheel (from versions: none)
ERROR: No matching distribution found for wheel
——————————————————-
WARNING: Discarding file:///C:/Users//Downloads/pyinstaller-4.3.tar.gz. Command errored out with exit status 1: 'D:\ProgramFiles\Python\Python39\python.exe’ 'C:\Users\***\AppData\Local\Temp\pip-standalone-pip-5x74odeq__env_pip__.zip\pip’ install –ignore-installed –no-user –prefix 'C:\Users\***\AppData\Local\Temp\pip-build-env-hg2evgp0\overlay’ –no-warn-script-location –no-binary :none: –only-binary :none: –no-index –find-links downloads — wheel setuptools Check the logs for full command output.
ERROR: Could not find a version that satisfies the requirement pyinstaller (from versions: 4.3)
ERROR: No matching distribution found for pyinstaller
「Could not find a version that satisfies the requirement wheel」のエラーはこれまでも何度か発生したことがありました。
これはインストールしたいライブラリの依存ライブラリが無いために発生するエラーで、依存ライブラリをインストールすれば解消しました。(オンラインでは自動的に依存ライブラリもインストールされます)
しかし、PyInstallerについては依存ライブラリであるwheelをインストールしても、なぜか上記のエラーが出続けます。
エラー対処法
PyInstallerとwheelのファイルを同一フォルダに入れてpipを実行することで解決しました。
(pipでは同一フォルダに依存ライブラリを入れると同時にインストールしてくれます)
Could not find a version that satisfies the requirement ***
wheelを入れた後もこのエラーは出ますが、後は***のライブラリを順次同じフォルダに入れていけば解決します。
(すべての依存ライブラリが揃うとインストールができます)
このように依存ライブラリのエラーが発生した場合には、依存ライブラリを同一フォルダに入れることで解決することができます。