サーチ…


前書き

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ディレクトリに解凍することができます。もしそうなら、最初に実行する必要があります。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow