Dlaczego "pip install" wewnątrz Pythona wywołuje błąd składni?

Próbuję użyć pip do zainstalowania pakietu. Próbuję uruchomić pip install z powłoki Pythona, ale dostaję SyntaxError. Dlaczego dostaję ten błąd? Jak zainstalować pakiet za pomocą pip?

>>> pip install selenium
              ^
SyntaxError: invalid syntax
Author: smci, 2011-12-18

5 answers

Pip jest uruchamiany z linii poleceń, nie z interpretera Pythona. Jest to program, który instaluje moduły , dzięki czemu można ich używać z Pythona. Po zainstalowaniu modułu możesz otworzyć powłokę Pythona i wykonać import selenium.

Powłoka Pythona nie jest wierszem poleceń, jest interaktywnym interpreterem. Wpisujesz do niego kod Pythona, Nie polecenia.

 226
Author: Lennart Regebro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-17 21:51:27

Użyj wiersza poleceń, a nie powłoki Pythona(DOS, PowerShell w Windows).

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

Jeśli zainstalowałeś Pythona w ścieżce przy użyciu najnowszych instalatorów, nie musisz znajdować się w tym folderze, aby uruchomić pip

Terminal w Mac lub Linux

$ pip install XYZ
 79
Author: ruxming,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-24 15:34:49

Aktualizacja: od wersji pip 10.x nie ma już metody get_installed_distributions() lub main POD import pip zamiast tego użyj import pip._internal as pip. Jeśli chcesz użyć pip wewnątrz interpretera Pythona, spróbuj tego:

import pip

package_names=['selenium', 'requests'] #packages to install
pip.main(['install'] + [package_names] + ['--upgrade']) 
# --upgrade to install or update existing packages

Jeśli chcesz zaktualizować każdy zainstalowany pakiet, użyj następującego polecenia:

import pip

for i in pip.get_installed_distributions():
    pip.main(['install', i.key, '--upgrade'])

Jeśli chcesz przestać instalować inne pakiety, jeśli jakakolwiek instalacja się nie powiedzie, użyj go w jednym wywołaniu pip.main([]):

import pip

package_names = [i.key for i in pip.get_installed_distributions()]
pip.main(['install'] + package_names + ['--upgrade'])

Uwaga : Po instalacji z listy w pliku z -r / --requirement parametr nie wymaga funkcji open ().

pip.main(['install', '-r', 'filename'])

Warning : niektóre parametry jako proste --help mogą spowodować zatrzymanie interpretera Pythona.

Ciekawostka: używając pip.exe rzeczywiście używasz interpretera Pythona i modułu pip. Jeśli rozpakujesz pip.exe lub pip3.exe niezależnie od tego, czy jest to python 2.x lub 3.x, Wewnątrz znajduje się ten sam pojedynczy plik __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())
 45
Author: Zydnar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-19 15:28:48

Aby uruchomić pip w Pythonie 3.x, po prostu postępuj zgodnie z instrukcjami na stronie Pythona: Instalowanie modułów Pythona .

python -m pip install SomePackage

Zauważ, że jest to uruchamiane z linii poleceń, a nie z powłoki Pythona (przyczyna błędu składni w oryginalnym pytaniu).

 43
Author: Dan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-02 19:53:46

Spróbuj uaktualnić pip za pomocą poniższego polecenia i spróbuj ponownie

python -m pip install -U pip
 0
Author: Karthik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-06 10:35:14