Was ist der Unterschied zwischen "pip install" und "python -m pip install"?

8

Ich habe eine lokale Version von Python 3.4.1 und ich kann python -m pip install ausführen, aber ich kann die pip-Binärdatei nicht finden, um pip install auszuführen. Was ist der Unterschied zwischen diesen beiden?

    
ilciavo 09.09.2014, 16:24
quelle

1 Antwort

14

Sie machen genau das Gleiche. Tatsächlich wurden die Dokumente zum Verteilen von Python-Modulen gerade aktualisiert , um die Verwendung von python -m pip anstelle von pip ausführbar vorzuschlagen, da dies der Fall ist einfacher zu sagen, welche Version von Python verwendet wird, um pip auf diese Weise auszuführen.

Bearbeiten:

Hier ist ein konkreterer "Beweis", der nicht nur meinem Wort und dem Fehlerbericht, den ich verlinkt habe, vertraut:)

Wenn Sie sich das ausführbare Skript pip ansehen, tun Sie Folgendes:

%Vor%

Es ruft load_entry_point auf, das eine Funktion zurückgibt und dann diese Funktion ausführt. Der Einstiegspunkt, den es benutzt, heißt 'console_scripts' . Wenn Sie sich die Datei entry_points.txt für pip (/usr/lib/python2.7/dist-packages/pip-1.5.4.egg-info/entry_points.txt auf meinem Ubuntu-Rechner) ansehen, werden Sie sehen das:

%Vor%

Der zurückgegebene Einstiegspunkt ist also die Funktion main im Modul pip .

Wenn Sie python -m pip ausführen, führen Sie das __main__.py -Skript im pip -Paket aus. Das sieht so aus:

%Vor%

Und die Funktion runner.run sieht so aus:

%Vor%

Wie Sie sehen, ruft es nur die Funktion pip.main auf. Daher rufen beide Befehle die gleiche Funktion main in pip/__init__.py auf.

    
dano 09.09.2014, 16:47
quelle

Tags und Links