Waarom geeft “pip install” in Python een SyntaxError?

Ik probeer pip te gebruiken om een pakket te installeren. Ik probeer pip installuit te voeren vanuit de Python-shell, maar ik krijg een SyntaxError. Waarom krijg ik deze fout? Hoe gebruik ik pip om het pakket te installeren?

>>> pip install selenium
              ^
SyntaxError: invalid syntax

Antwoord 1, autoriteit 100%

pip wordt uitgevoerd vanaf de opdrachtregel, niet de Python-interpreter. Het is een programma dat installeertmodules, zodat je ze vanuit Python kunt gebruiken. Als je de module eenmaal hebt geïnstalleerd, kun je de Python-shell openen en import seleniumdoen.

De Python-shell is geen opdrachtregel, het is een interactieve interpreter. Je typt er Python-code in, geen commando’s.


Antwoord 2, autoriteit 34%

Gebruik de opdrachtregel, niet de Python-shell (DOS, PowerShell in Windows).

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

Als je Python in je PATH hebt geïnstalleerd met de nieuwste installatieprogramma’s, hoef je niet in die map te zijn om pip uit te voeren

Terminal in Mac of Linux

$ pip install XYZ

Antwoord 3, autoriteit 19%

Zoals @sinoroc suggereerde dat de juiste manier om een pakket via pip te installeren een afzonderlijk proces gebruikt, aangezien pip een thread kan sluiten of een herstart van de interpreter kan vereisen om een nieuw geïnstalleerd pakket te laden, dus dit is de juiste manier om de API te gebruiken: subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'SomeProject'])maar aangezien Python toegang geeft tot de interne API en je weet wat je gebruikt, API voor u wilt misschien toch interne API gebruiken, bijv. als u een eigen GUI-pakketbeheerder bouwt met alternatieve bronnen zoals https://www.lfd. uci.edu/~gohlke/pythonlibs/

De volgende oplossing is OUT OF DATE, in plaats van te stemmen met suggesties voor updates.zie https://github.com/pypa/pip/issues/7498ter referentie.


UPDATE: Sinds pip versie 10.xis er geen get_installed_distributions()of mainmethode meer onder import pipgebruik in plaats daarvanimport pip._internal as pip.

UPDATE ca. v.18get_installed_distributions()is verwijderd. In plaats daarvan kunt u generator freezeals volgt gebruiken:

from pip._internal.operations.freeze import freeze
print([package for package in freeze()])
# eg output ['pip==19.0.3']


Als je pip in de Python-interpreter wilt gebruiken, probeer dan dit:

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

Als u elk geïnstalleerd pakket moet bijwerken, gebruikt u het volgende:

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

Als je wilt stoppen met het installeren van andere pakketten als een installatie mislukt, gebruik het dan in één enkele pip.main([])-aanroep:

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

Opmerking: wanneer u installeert vanuit een lijst in een bestand met de parameter -r/ --requirement, heeft u de functie open() NIET nodig.

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

Waarschuwing: sommige parameters zoals eenvoudige --helpkunnen ertoe leiden dat de Python-interpreter stopt.

Nieuwsgierigheid: door pip.exete gebruiken, gebruik je eigenlijk toch de python-interpreter en pip-module. Als u pip.exeof pip3.exeuitpakt, ongeacht of het python 2.x of 3.x is, binnenin bevindt zich HETZELFDE enkele bestand __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())

Antwoord 4, autoriteit 17%

Om pip in Python 3.x uit te voeren, volgt u de instructies op de Python-pagina: Python-modules installeren.

python -m pip install SomePackage

Merk op dat dit wordt uitgevoerd vanaf de opdrachtregel en niet vanuit de python-shell (de reden voor syntaxisfout in de oorspronkelijke vraag).


Antwoord 5, autoriteit 2%

In het begin had ik ook te maken met hetzelfde probleem, ik installeerde python en toen ik de opdracht pipuitvoerde, gaf het me een foutmelding zoals weergegeven in de onderstaande afbeelding.

Zorg ervoor dat het pip-pad wordt toegevoegd aan omgevingsvariabelen. Voor mij is het installatiepad voor python en pip::
Python: C:\Users\fhhz\AppData\Local\Programs\Python\Python38\
pip: C:\Users\fhhz\AppData\Local\Programs\Python\Python38\Scripts
Beide paden zijn toegevoegd aan pad in omgevingsvariabelen.

Open nu een nieuw cmd-venster en typ pip, je zou een scherm moeten zien zoals hieronder.

Typ nu pip install <<package-name>>. Hier installeer ik pakket spyder, dus mijn opdrachtregel zal zijn als pip install spyderen hier komt mijn actieve scherm..

en ik hoop dat we hiermee klaar zijn!!


Antwoord 6

Als u het vanaf de opdrachtregel doet,

probeer –

python -m pip install selenium

of (voor Python3 en hoger)

python3 -m pip install selenium


Antwoord 7

je moet het in cmd typen, niet in de IDLE. omdat IDLE geen opdrachtprompt is als u iets van IDLE wilt installeren, typt u dit

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

dit is het aanroepen van pip zoals pip <commands>in terminal. De commando’s worden gescheiden door spaties die je daar doet.


Antwoord 8

Programmatisch werken de volgende momenteel. Ik zie alle antwoorden na 10.0 en zo, maar geen van hen is het juiste pad voor mij. Binnen Kaggle werkt deze aanpak zeker

from pip._internal import main as _main
package_names=['pandas'] #packages to install
_main(['install'] + package_names + ['--upgrade']) 

Antwoord 9

Probeer pip te upgraden met het onderstaande commando en probeer het opnieuw

python -m pip install -U pip

Other episodes