Antworten:
pip wird über die Befehlszeile ausgeführt, nicht über den Python-Interpreter. Es ist ein Programm, das Module installiert , sodass Sie sie in Python verwenden können. Sobald Sie das Modul installiert haben, können Sie die Python-Shell öffnen und ausführenimport selenium
.
Die Python-Shell ist keine Befehlszeile, sondern ein interaktiver Interpreter. Sie geben Python-Code ein, keine Befehle.
pip
befindet sich im Skriptverzeichnis Ihrer Python-Installation, sodass Sie es Ihrem Pfad hinzufügen möchten. Fügen Sie C:\Python32\scripts
Ihrem hinzu PATH
. Ändern Sie den Pfad nach Bedarf, je nachdem, wo Sie ihn installiert haben.
Verwenden Sie die Befehlszeile, nicht die Python-Shell (DOS, PowerShell in Windows).
C:\Program Files\Python2.7\Scripts> pip install XYZ
Wenn Sie Python mit den neuesten Installationsprogrammen in Ihrem PATH installiert haben, müssen Sie sich nicht in diesem Ordner befinden, um pip auszuführen
Terminal in Mac oder Linux
$ pip install XYZ
PATH
. Ich musste dies manuell tun und auf den Installationspfad in%APPDATA%
Wie @sinoroc vorgeschlagen hat, verwendet die korrekte Art der Installation eines Pakets über pip einen separaten Prozess, da pip möglicherweise das Schließen eines Threads verursacht oder einen Neustart des Interpreters zum Laden eines neu installierten Pakets erforderlich macht. Dies ist also die richtige Art, die API zu verwenden. subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'SomeProject'])
Da Python dies jedoch zulässt Um auf die interne API zuzugreifen und zu wissen, wofür Sie die API verwenden, möchten Sie möglicherweise trotzdem die interne API verwenden, z. Wenn Sie einen eigenen GUI-Paketmanager mit alternativen Ressourcen wie https://www.lfd.uci.edu/~gohlke/pythonlibs/ erstellen.
Die folgende Soulution ist veraltet, anstatt Downvoting Updates vorzuschlagen. Weitere Informationen finden Sie unter https://github.com/pypa/pip/issues/7498 .
get_installed_distributions()
oder main
Methode unter import pip
stattdessen verwenden import pip._internal as pip
.
UPDATE ca. v.18 get_installed_distributions()
wurde entfernt. Stattdessen können Sie den Generator freeze
wie folgt verwenden:
from pip._internal.operations.freeze import freeze
print([package for package in freeze()])
# eg output ['pip==19.0.3']
import pip
package_names=['selenium', 'requests'] #packages to install
pip.main(['install'] + package_names + ['--upgrade'])
# --upgrade to install or update existing packages
Wenn Sie jedes installierte Paket aktualisieren müssen, verwenden Sie Folgendes:
import pip
for i in pip.get_installed_distributions():
pip.main(['install', i.key, '--upgrade'])
Wenn Sie die Installation anderer Pakete beenden möchten, wenn eine Installation fehlschlägt, verwenden Sie sie in einem einzigen pip.main([])
Aufruf:
import pip
package_names = [i.key for i in pip.get_installed_distributions()]
pip.main(['install'] + package_names + ['--upgrade'])
Hinweis : Wenn Sie von der Liste in der Datei mit -r
/ --requirement
parameter installieren, benötigen Sie NICHT die Funktion open ().
pip.main(['install', '-r', 'filename'])
Warnung : Einige Parameter sind so einfach--help
können dazu führen, dass der Python-Interpreter gestoppt wird.
Neugier: Wenn pip.exe
Sie verwenden, verwenden Sie ohnehin Python-Interpreter und Pip-Modul. Wenn Sie entpacken pip.exe
oder pip3.exe
unabhängig davon, ob es sich um Python 2.x oder 3.x handelt, befindet sich darin die GLEICHE Einzeldatei __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())
Befolgen Sie zum Ausführen von pip in Python 3.x einfach die Anweisungen auf der Python-Seite: Installieren von Python-Modulen .
python -m pip install SomePackage
Beachten Sie, dass dies über die Befehlszeile und nicht über die Python-Shell ausgeführt wird (der Grund für den Syntaxfehler in der ursprünglichen Frage).
Anfangs hatte auch ich das gleiche Problem. Ich habe Python installiert und beim Ausführen des pip
Befehls wurde ein Fehler ausgegeben, wie in der Abbildung unten gezeigt.
Stellen Sie sicher, dass der Pip-Pfad in Umgebungsvariablen hinzugefügt wird. Für mich lautet der Installationspfad für Python und Pip ::
Python: C:\Users\fhhz\AppData\Local\Programs\Python\Python38\
pip:C:\Users\fhhz\AppData\Local\Programs\Python\Python38\Scripts
Beide Pfade wurden dem Pfad in Umgebungsvariablen hinzugefügt.
Öffnen Sie nun ein neues cmd-Fenster und geben Sie pip ein. Es sollte ein Bildschirm wie unten angezeigt werden.
Geben Sie nun ein pip install <<package-name>>
. Hier installiere ich das Paket spyder, damit meine Befehlszeilenanweisung wie folgt lautet pip install spyder
und hier geht mein laufender Bildschirm.
und ich hoffe wir sind damit fertig !!
Sie müssen es in cmd eingeben, nicht im IDLE. Da IDLE keine Eingabeaufforderung ist, wenn Sie etwas von IDLE installieren möchten, geben Sie dies ein
>>>from pip.__main__ import _main as main
>>>main(#args splitted by space in list example:['install', 'requests'])
Dies ruft pip wie pip <commands>
im Terminal auf. Die Befehle werden durch Leerzeichen getrennt, die Sie dort ausführen.
ImportError: cannot import name main
using pip v19.0.3
Programmatisch funktioniert derzeit Folgendes . Ich sehe alle Antworten nach 10.0 und alle, aber keine davon ist der richtige Weg für mich. In Kaggle funktioniert dieser Ansatz mit Sicherheit
from pip._internal import main as _main
package_names=['pandas'] #packages to install
_main(['install'] + package_names + ['--upgrade'])
Versuchen Sie, pip mit dem folgenden Befehl zu aktualisieren, und versuchen Sie es erneut
python -m pip install -U pip