2つのpip管理のpythonインストールの違いを報告し、調整するコードを少し書いています。
pip list
サブプログラムでpipを呼び出さずに、提供された情報をプログラムで取得するにはどうすればよいですか?
2019年2月1日の時点での上位の回答は古くなっており、新しいバージョンのpipでは動作しません。
しかし心配する必要はありません-プログラムでパッケージのリストを取得することはまだ可能です:
A. _internal.main
from pip import _internal
_internal.main(['list'])
これにより、パッケージで3つの列が出力されます。バージョンと場所
pipの内部APIの使用は推奨されないことに注意してください。
A. pkg_resources
import pkg_resources
print([p.project_name for p in pkg_resources.working_set])
# note that this is same as calling pip._vendor.pkg_resources.working_set
B. iter_modules
実行に長い時間がかかります(I5 CPU、SSD、および8ギガRAMを搭載したコンピューターでは約300ミリ秒)。利点は、モジュールのはるかに広範なリストがあり、インポート可能な名前が出力されることです。
例:python-dateutilはdateutilとしてインポートされますが、iter_modulesはインポート可能な名前を提供します:dateutil
from pkgutil import iter_modules
print([p.name for p in iter_modules()])
C.サブプロセスを介してコマンドラインでpipを呼び出す
これに対する解決策は取るに足らないものであり、読者への演習としてこれを残しておきます
別名私はこれを行うのが面倒なので、頑張ってください!:D
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加