web-dev-qa-db-fra.com

Pourquoi "pip install" dans Python déclenche-t-il une syntaxe d'erreur?

J'essaie d'utiliser pip pour installer un paquet. J'essaie d'exécuter pip install à partir du shell Python, mais j'ai une SyntaxError Pourquoi ai-je cette erreur? Comment utiliser pip pour installer le package?

>>> pip install Selenium
              ^
SyntaxError: invalid syntax
176
Nacht

pip est exécuté à partir de la ligne de commande, pas de l'interpréteur Python. C'est un programme que installe modules, vous pouvez donc les utiliser depuis Python. Une fois le module installé, vous pouvez ouvrir le shell Python et faire import Selenium.

Le shell Python n’est pas une ligne de commande, c’est un interpréteur interactif. Vous tapez du code Python, pas des commandes.

242
Lennart Regebro

Utilisez la ligne de commande, pas le shell Python (DOS, PowerShell sous Windows).

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

Si vous avez installé Python dans votre PATH à l’aide des derniers programmes d’installation, vous n'avez pas besoin de vous trouver dans ce dossier pour exécuter pip 

Terminal sous Mac ou Linux

$ pip install XYZ
85
ruxming

UPDATE: Depuis la version 10.x de pip, il n'y a plus de méthode get_installed_distributions() ou main sous import pipau lieu d'utiliserimport pip._internal as pip.


Si vous voulez utiliser pip dans l’interpréteur Python, essayez ceci:

import pip

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

Si vous devez mettre à jour chaque paquet installé, utilisez ce qui suit:

import pip

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

Si vous souhaitez arrêter l'installation d'autres packages en cas d'échec d'une installation, utilisez-le dans un seul appel pip.main([]):

import pip

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

Note: Lorsque vous installez à partir d'une liste dans un fichier avec le paramètre -r--requirement, vous n'avez PAS besoin de la fonction open ().

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

_/Avertissement: Certains paramètres, tels que --help, peuvent provoquer l'arrêt de l'interpréteur python.

Curiosité: En utilisant pip.exe, vous utilisez quand même un interpréteur python et un module pip. Si vous décompressez pip.exe ou pip3.exe, qu'il s'agisse de python 2.x ou 3.x, le fichier unique SAME __main__.py se trouve à l'intérieur:

# -*- coding: utf-8 -*-
import re
import sys

from pip import main

if __== '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())
50
Zydnar

Pour exécuter pip dans Python 3.x, suivez simplement les instructions de la page Python: Installation de modules Python .

python -m pip install SomePackage

Notez qu'il est exécuté à partir de la ligne de commande et non du shell Python (raison de l'erreur de syntaxe dans la question d'origine).

45
Dan

Essayez de mettre à niveau pip avec la commande ci-dessous et réessayez.

python -m pip install -U pip
0
Karthik

vous devez taper dans cmd pas dans IDLE. becuse IDLE n’est pas une commande si vous voulez installer quelque chose de type IDLE

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

cela appelle pip comme pip <commands> dans le terminal. Les commandes seront séparées par des espaces que vous y faites.

0
Matthijs990

Par programme, ce qui suit actuellement fonctionne. Je vois toutes les réponses post 10.0 et toutes, mais aucune d’entre elles n’est le bon chemin pour moi. Dans Kaggle à coup sûr, cette approche fonctionne

from pip._internal import main as _main

package_names=['pandas'] #packages to install
_main(['install'] + package_names + ['--upgrade']) 
0
demongolem