Почему «установка pip» внутри Python вызывает ошибку SyntaxError? - PullRequest
189 голосов
/ 18 декабря 2011

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

>>> pip install selenium
              ^
SyntaxError: invalid syntax

Ответы [ 6 ]

254 голосов
/ 18 декабря 2011

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

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

89 голосов
/ 17 июня 2013

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

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

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

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

$ pip install XYZ
56 голосов
/ 30 августа 2016

ОБНОВЛЕНИЕ : С версии 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())
49 голосов
/ 07 августа 2015

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

python -m pip install SomePackage

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

0 голосов
/ 15 мая 2019

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

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

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

0 голосов
/ 06 августа 2018

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

python -m pip install -U pip
...