Seperti @sinoroc menyarankan cara yang benar untuk menginstal paket melalui pip menggunakan proses terpisah karena pip dapat menyebabkan penutupan utas atau mungkin memerlukan restart penerjemah untuk memuat paket yang diinstal baru jadi ini adalah cara yang tepat untuk menggunakan API: subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'SomeProject'])tetapi karena Python mengizinkan untuk mengakses API internal dan Anda tahu apa yang Anda gunakan API untuk Anda mungkin ingin menggunakan API internal misalnya. jika Anda membangun manajer paket GUI sendiri dengan sumber daya alternatif seperti https://www.lfd.uci.edu/~gohlke/pythonlibs/
Mengikuti soulution adalah OUT OF DATE, bukannya downvoting menyarankan pembaruan. lihat https://github.com/pypa/pip/issues/7498 untuk referensi.
UPDATE :
Sejak versi pip 10.x tidak ada lagi
get_installed_distributions()atau
mainmetode di bawah
import pip bukan menggunakan import pip._internal as pip .
PEMBARUAN ca. v.18 get_installed_distributions() telah dihapus. Sebagai gantinya, Anda dapat menggunakan generator freezeseperti ini:
from pip._internal.operations.freeze import freeze
print([package for package in freeze()])
# eg output ['pip==19.0.3']
Jika Anda ingin menggunakan pip di dalam interpreter Python, coba ini:
import pip
package_names=['selenium', 'requests'] #packages to install
pip.main(['install'] + package_names + ['--upgrade'])
# --upgrade to install or update existing packages
Jika Anda perlu memperbarui setiap paket yang diinstal, gunakan yang berikut ini:
import pip
for i in pip.get_installed_distributions():
pip.main(['install', i.key, '--upgrade'])
Jika Anda ingin berhenti menginstal paket lain jika ada instalasi yang gagal, gunakan dalam satu pip.main([])panggilan:
import pip
package_names = [i.key for i in pip.get_installed_distributions()]
pip.main(['install'] + package_names + ['--upgrade'])
Catatan : Ketika Anda menginstal dari daftar dalam file dengan -r/ --requirementparameter Anda TIDAK perlu fungsi open ().
pip.main(['install', '-r', 'filename'])
Peringatan : Beberapa parameter sesederhana --helpmungkin menyebabkan interpreter python berhenti.
Keingintahuan: Dengan menggunakan pip.exeAnda sebenarnya menggunakan interpreter python dan modul pip. Jika Anda membongkar pip.exeatau pip3.exemengabaikannya python 2.x atau 3.x, di dalamnya adalah file tunggal SAMA __main__.py:
# -*- coding: utf-8 -*-
import re
import sys
from pip import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())