web-dev-qa-db-ja.com

pipを使用せずにpython wheelファイルをインストール

pipを使用せずにPythonホイールをインストールできますか?pipでのインストールには常に問題があります。 。同様の方法でホイールファイルを実行する方法があるかどうか疑問に思っています。

15
king

そうです。実際、.whlファイルは単なるZipアーカイブであるため、コンテンツを抽出し、ライブラリパス変数を操作して動作させることができます。しかし、それは本当に悪い習慣です。

8
0Hour ForTea

インターネットにアクセスできるであると仮定していますが、有効なpipインストールがないです。

ピップホイールをダウンロードします。

wget https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl

そもそもリリースのURLを見つけるには、インデックスjsonエンドポイントを取得できます。例えば:

$ curl -s https://pypi.org/pypi/pip/json | jq ".urls[0].url"
"https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl"

他のホイールファイルで「実行」します。たとえば、bdistからsetuptools v39.0.1をインストールしようとした場合、コマンドは次のようになります。

$ python pip-10.0.1-py2.py3-none-any.whl/pip install --no-index setuptools-39.0.1-py2.py3-none-any.whl
Processing ./setuptools-39.0.1-py2.py3-none-any.whl
Installing collected packages: setuptools
Successfully installed setuptools-39.0.1

これでsetuptoolsが動作するようになりましたが、pipはありません。

あなたが疑問に思っている場合、はい、あなたはpip自体をインストールするために同じトリックを使用できます。そのコマンドは次のようになります。

python pip-10.0.1-py2.py3-none-any.whl/pip install --no-index pip-10.0.1-py2.py3-none-any.whl

これで、このpython実行可能ファイルが指しているインタープリターに関連付けられた、有効なpipインストールがあるはずです。

24
wim