2011-12-17 13 views
135

Sto provando ad usare pip per installare un pacchetto. Provo a eseguire pip install dalla shell Python, ma ottengo uno SyntaxError. Perché ottengo questo errore? Come utilizzare pip per installare il pacchetto?Perché "pip install" in Python genera un SyntaxError?

>>> pip install selenium 
      ^
SyntaxError: invalid syntax 

risposta

188

pip viene eseguito dalla riga di comando, non è l'interprete Python. Si tratta di un programma che installa moduli, quindi è possibile utilizzarli da Python. Una volta installato il modulo, è possibile aprire la shell Python e fare import selenium.

La shell Python non è una riga di comando, è un interprete interattivo. Digiti il ​​codice Python, non i comandi.

+0

Grazie per il chiarimento, ma non riesco ancora a farlo funzionare. Dove è esattamente? Mi sta dando un errore "pip non riconosciuto" (perché non sono la directory giusta). E 'stato installato in \ site-packages, ma mi sembra che l'abbia pensato e non riesco a trovare nessun pip.exe – Nacht

+22

@Nacht - 'pip' si troverà nella directory degli script della tua installazione python, quindi vorrai aggiungerla al tuo percorso. Aggiungi 'C: \ Python32 \ scripts' al tuo' PATH'. Modificare il percorso secondo necessità in base a dove è stato installato. – birryree

+1

In realtà pip.exe in windows è uno script python come altri nella directory/scripts, ma wraped in exe per eseguirlo con l'interprete python predefinito. Aprendo pip.exe con 7-zip puoi vedere _main_.py importare pip, sys e re modules ... (E lì troverai la risposta su come eseguirlo all'interno di una shell python) -> pip è un normale modulo python. Non dimenticare che Windows non era la prima piattaforma che supportava python, era Linux, e lì python fa parte del sistema operativo. – Zydnar

69

Utilizzare la riga di comando, non la shell Python (DOS, PowerShell in Windows).

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

Se si è installato Python nel vostro percorso utilizzando i più recenti programmi di installazione, non c'è bisogno di essere in quella cartella per eseguire PIP

terminale in Mac o Linux

$ pip install XYZ 
+1

Grazie per aver incluso C: ...., mi ha aiutato a capire dove avevo bisogno di andare su cd perché non puoi semplicemente aprire la riga di comando e digitare pip. – hammythepig

29

Per eseguire pip a partire da Python 3.6, basta seguire le istruzioni sulla pagina di Python: Installing Python Modules.

python -m pip install SomePackage 

noti che questo viene eseguito dalla riga di comando e non la shell pitone (la ragione di errore di sintassi nella domanda originale).

+1

Sto ancora ricevendo la sintassi non valida. Sto usando IPython su un PC Windows 10. qualche idea? – DataGirl

+0

Questa pagina contiene le istruzioni per l'installazione di IPython: http://ipython.readthedocs.io/en/stable/install/index.html $ pip install ipython. Presumibilmente ciò si tradurrebbe in $ python -m pip install ipython – Dan

+0

Questo non risponde nulla sull'errore di sintassi –

33

Se si desidera utilizzare pip all'interno l'interprete Python, provate questo:

import pip 

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

Se è necessario aggiornare tutti i pacchetti installati, l'uso seguente:

import pip 

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

Se si desidera interrompere l'installazione altri pacchetti in caso di qualsiasi installazione non riesce, utilizzarlo in una sola chiamata pip.main([]):

import pip 

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

Nota: Quando si installa da un elenco in un file con il parametro -r/--requirement NON è necessario utilizzare la funzione open().

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

Attenzione: Alcuni parametri come semplice --help possono causare python interprete di fermarsi.

Curiosità: utilizzando pip.exe in realtà si utilizza comunque l'interprete python e il modulo pip. Se si apre la confezione pip.exe o pip3.exe a prescindere che sia python 2.x o 3.x, all'interno è il singolo file STESSO __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

Questo funziona nella shell Python, quindi penso che dovrebbe essere la risposta accettata. –

+2

Questo è esattamente quello che speravo di trovare quando ho cercato su Google questo problema. –

+0

Ottima risposta, e dovrebbe essere sicuramente inclusa qui, ma non sono d'accordo che dovrebbe essere la risposta accettata, dal momento che l'utente stava chiaramente cercando di rendere funzionante l'onnipresente sintassi "pip install". Poiché la sintassi non funziona con questo metodo, non risolve direttamente tale problema. Potrebbe essere più utile della risposta accettata però :) – Dan

Problemi correlati