2011-12-17 4 views
135

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

>>> pip install selenium 
      ^
SyntaxError: invalid syntax 

ответ

188

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

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

+0

Спасибо за разъяснения, но я до сих пор не могу заставить его работать. Где именно это? Это дает мне ошибку «пип не признана» (потому что я не правильный каталог). Он был установлен в \ site-packages, но я думаю, что это не так, и я не могу найти какой-либо пипс.exe – Nacht

+22

@Nacht - 'pip' будет в каталоге скриптов вашей установки python, поэтому вы захотите добавить его на свой путь. Добавьте 'C: \ Python32 \ scripts' в ваш' PATH'. Измените путь по мере необходимости на основе того, где вы его установили. – birryree

+1

На самом деле pip.exe в windows - это скрипт python, как и другие в каталоге/scripts, но в wexped в exe для запуска его с помощью интерпретатора python по умолчанию. Открыв pip.exe с помощью 7-zip, вы можете увидеть _main_.py, импортирующий pip, sys и re modules ... (И там вы найдете ответ, как запустить его в оболочке python) -> pip является обычным python. Не забывайте, что окна не были первой платформой, поддерживающей python, Linux был, и там python является частью ОС. – Zydnar

69

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

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

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

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

$ pip install XYZ 
+1

Спасибо за то, что я включил C: ...., помог мне понять, где мне нужно было cd, поскольку вы не можете просто открыть командную строку и набрать pip. – hammythepig

29

Для запуска с Python 3.6, просто следуйте инструкциям на странице Python: Installing Python Modules.

python -m pip install SomePackage 

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

+1

Я все еще получаю недействительный синтаксис. Я использую IPython на ПК с Windows 10. Есть предположения? – DataGirl

+0

Эта страница содержит инструкции по установке IPython: http://ipython.readthedocs.io/en/stable/install/index.html $ pip install ipython. Предположительно, что бы перевести на $ python -m pip install ipython – Dan

+0

Это ничего не говорит о синтаксической ошибке –

33

Если вы хотите использовать пип внутри интерпретатора 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 может вызвать питон интерпретатор, чтобы остановить.

Любопытство: используя pip.exe, вы фактически используете интерпретатор python и модуль pip. Если вы распаковываете pip.exe или pip3.exe независимо это питон 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()) 
+3

Это работает в оболочке Python, поэтому я думаю, что это должен быть принятый ответ. –

+2

Это именно то, что я надеялся найти, когда Googling эта проблема. –

+0

Отличный ответ, и он обязательно должен быть включен здесь, но я не согласен, что это должен быть принятый ответ, так как пользователь явно пытался сделать теперь повсеместный синтаксис «pip install». Поскольку этот синтаксис не будет работать с этим методом, он не решает эту проблему напрямую. Это может быть более полезным, чем принятый ответ, хотя :) – Dan

Смежные вопросы