Почему "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