Python Language
"pip"モジュールの使い方:PyPI Package Manager
サーチ…
前書き
Pythonの中でpipパッケージマネージャを使う必要があるかもしれません。一部のインポートでImportError
が発生し、その例外を処理したい場合。 WindowsでPython_root/Scripts/pip.exe
を展開すると、 pip
パッケージのmain
クラスがインポートされる__main__.py
ファイルが格納されます。つまり、pip実行可能ファイルを使用するたびにpipパッケージが使用されます。実行可能ファイルとしてpipを使用するには、pip :PyPI Package Managerを参照してください。
構文
- pip。<function | attribute | class> functionは次のいずれかです。
- オートコンプリート()
- メインオプションパーサー(およびオプション)とそのサブコマンド(およびオプション)のコマンドとオプションの補完。完了シェルスクリプト(bash、zsh、fish)のいずれかをソースとして有効にします。
- check_isolated(args)
- param args {list}
- returns {boolean}
- create_main_parser()
- 戻り値{pip.baseparser.ConfigOptionParserオブジェクト}
- main(args = None)
- param args {list}
- returns {integer}失敗しなかった場合は0を返します。
- parseopts(args)
- param args {list}
- get_installed_distributions()
- {list}を返す
- get_similar_commands(name)
- コマンド名は自動修正されます。
- パラメータ名{string}
- returns {boolean}
- get_summaries(ordered = True)
- ソートされた(コマンド名、コマンド要約)タプルを出力します。
- get_prog()
- {string}を返します。
- dist_is_editable(dist)
- ディストリビューションは編集可能なインストールですか?
- param dist {object}
- returns {boolean}
- commands_dict
- 属性{辞書}
- オートコンプリート()
コマンドの使用例
import pip
command = 'install'
parameter = 'selenium'
second_param = 'numpy' # You can give as many package names as needed
switch = '--upgrade'
pip.main([command, parameter, second_param, switch])
pip.main(['freeze'])
とpip.main(['freeze', '', ''])
両方が必須です。
バッチインストール
1回の呼び出しで多数のパッケージ名を渡すことは可能ですが、1つのインストール/アップグレードが失敗すると、インストールプロセス全体が停止し、ステータスが '1'で終了します。
import pip
installed = pip.get_installed_distributions()
list = []
for i in installed:
list.append(i.key)
pip.main(['install']+list+['--upgrade'])
いくつかのインストールが失敗したときに停止したくない場合は、ループでインストールを呼び出します。
for i in installed:
pip.main(['install']+i.key+['--upgrade'])
ImportError例外の処理
モジュールとしてPythonファイルを使用する場合、パッケージがインストールされているかどうかは必ずしも確認する必要はありませんが、それでもスクリプトには便利です。
if __name__ == '__main__':
try:
import requests
except ImportError:
print("To use this module you need 'requests' module")
t = input('Install requests? y/n: ')
if t == 'y':
import pip
pip.main(['install', 'requests'])
import requests
import os
import sys
pass
else:
import os
import sys
print('Some functionality can be unavailable.')
else:
import requests
import os
import sys
強制インストール
バージョン3.4のような多くのパッケージは3.6でもうまく動作しますが、特定のプラットフォーム用のディストリビューションがない場合はインストールできませんが、回避策があります。 .whlファイル(ホイールと呼ばれる)の命名規則では、特定のプラットフォームにパッケージをインストールできるかどうかを決定します。例えば。 scikit_learn‑0.18.1‑cp36‑cp36m‑win_amd64.whl
[ scikit_learn‑0.18.1‑cp36‑cp36m‑win_amd64.whl
] - [バージョン] - [Pythonインタプリタ] - [Python-interpreter] - [オペレーティングシステム] .whl。ホイールファイルの名前が変更された場合、プラットフォームが一致するので、pipはプラットフォームまたはPythonのバージョンが一致しなくてもパッケージをインストールしようとします。名前からプラットフォームまたはインタプリタを削除すると、pipモジュールkjhfkjdf.whl is not a valid wheel filename.
最新のバージョンでエラーが発生しkjhfkjdf.whl is not a valid wheel filename.
。
代わりに.whlファイルは7-zipとしてアーカイバを使用して解凍することができます。 - 通常、配布メタフォルダとソースファイルを含むフォルダが含まれています。これらのソースファイルは、このホイールにインストールスクリプトが含まれていない限り、単にsite-packges
ディレクトリに解凍することができます。もしそうなら、最初に実行する必要があります。