ОБНОВЛЕНИЕ : С версии 10.x в пипсах метод get_installed_distributions()
или main
больше не существует под import pip
вместо использования import pip._internal as pip
.
ОБНОВЛЕНИЕ ок.v.18 get_installed_distributions()
был удален.Вместо этого вы можете использовать генератор freeze
следующим образом:
from pip._internal.operations.freeze import freeze
print([package for package in freeze()])
# eg output ['pip==19.0.3']
Если вы хотите использовать pip внутри интерпретатора Python, попробуйте следующее:
import pip
package_names=['selenium', 'requests'] #packages to install
pip.main(['install'] + package_names + ['--upgrade'])
# --upgrade to install or update existing packages
Если вам нужноОбновите каждый установленный пакет, используйте следующее:
import pip
for i in pip.get_installed_distributions():
pip.main(['install', i.key, '--upgrade'])
Если вы хотите прекратить установку других пакетов в случае сбоя установки, используйте его в одном вызове pip.main([])
:
import pip
package_names = [i.key for i in pip.get_installed_distributions()]
pip.main(['install'] + package_names + ['--upgrade'])
Примечание : при установке из списка в файле с параметром -r
/ --requirement
вам НЕ требуется функция open ().
pip.main(['install', '-r', 'filename'])
Предупреждение : некоторыеПростые параметры --help
могут привести к остановке интерпретатора Python.
Любопытство: используя pip.exe
, вы все равно используете интерпретатор Python и модуль pip.Если вы распакуете pip.exe
или pip3.exe
независимо от того, что это Python 2.x или 3.x, внутри будет ОДИН И ТО ЖЕ единственный файл __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())