Почему "pip install" внутри Python поднимает SyntaxError?

Я пытаюсь использовать pip для установки пакета. Я пытаюсь запустить pip install из оболочки Python, но я получаю SyntaxError. Почему я получаю эту ошибку? Как использовать pip для установки пакета?

>>> pip install selenium
              ^
SyntaxError: invalid syntax

Ответ 1

pip запускается из командной строки, а не интерпретатора Python. Это программа, в которой устанавливает модули, поэтому вы можете использовать их из Python. После того, как вы установили модуль, вы можете открыть оболочку Python и сделать import selenium.

Оболочка Python не является командной строкой, это интерактивный интерпретатор. Вы вводите в него код Python, а не команды.

Ответ 2

Используйте командную строку, а не оболочку Python (DOS, PowerShell в Windows).

C:\Program Files\Python2.7\Scripts> pip install XYZ

Если вы установили Python в свой PATH с помощью последних инсталляторов, вам не нужно находиться в этой папке для запуска pip

Терминал в Mac или Linux

$ pip install XYZ

Ответ 3

ОБНОВЛЕНИЕ: Начиная с версии get_installed_distributions() нет больше 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())

Ответ 4

Чтобы запустить pip в Python 3.x, просто следуйте инструкциям на странице Python: Установка модулей Python.

python -m pip install SomePackage

Обратите внимание, что это запускается из командной строки, а не из оболочки Python (причина синтаксической ошибки в исходном вопросе).

Ответ 5

Вам нужно ввести его в cmd, а не в режиме IDLE. потому что IDLE не является командной строкой, если вы хотите установить что-то из IDLE, введите это

>>>from pip.__main__ import _main as main
>>>main(#args splitted by space in list example:['install', 'requests'])

это вызывает pip как pip <commands> в терминале. Команды будут разделены пробелами, которые вы там делаете.

Ответ 6

Программно, в настоящее время работает следующее. Я вижу все ответы после 10.0 и все, но ни один из них не является правильным путем для меня. В Kaggle это приложение работает наверняка

from pip._internal import main as _main

package_names=['pandas'] #packages to install
_main(['install'] + package_names + ['--upgrade']) 

Ответ 7

Попробуйте выполнить обновление с помощью команды ниже и повторите попытку

python -m pip install -U pip