python pip: Erzwinge die Installation und ignoriere Abhängigkeiten

126

Gibt es eine Möglichkeit, die Installation eines Pip-Python-Pakets zu erzwingen, wobei alle Abhängigkeiten ignoriert werden, die nicht erfüllt werden können?

(Es ist mir egal, wie "falsch" es ist, ich muss es nur tun, jede Logik und Argumentation beiseite ...)

NeuronQ
quelle

Antworten:

199

pip hat einen --no-dependenciesSchalter. Das solltest du benutzen.

Weitere Informationen erhalten pip install -hSie, wenn Sie diese Zeile sehen:

--no-deps, --no-dependencies
                        Ignore package dependencies
Jeff Tratner
quelle
ok, danke für die Mühe zu antworten ... Entschuldigung, keine Ahnung, wie ich das verpasst habe, ich hätte definitiv rtfm ...
NeuronQ
19
Wie übergebe ich dies in einer Datei "require.txt"?
Austin
2
Um mit einer require.txt zu laufen, wäre es:pip install --no-deps -r requirements.txt
Graham Place
Etwas Ähnliches, um die Installation empfohlener Pakete wie mit zu verhindern apt-get install --no-install-recommends?
Connor
1
@Connor gibt es kein Äquivalent zu "empfohlenen Paketen" in einem der Standard-Python-Verpackungstools: distutils, setuptools, pip. Setuptools (und pip) haben "Extras", die jedoch vom Benutzer explizit ausgewählt und installiert werden müssen.
Shadowtalker
6

Beim Versuch, das librosaPaket mit pip( pip install librosa) zu installieren , wurde folgender Fehler angezeigt:

ERROR: Cannot uninstall 'llvmlite'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

Ich habe versucht zu entfernen llvmlite, pip uninstallkonnte es aber nicht entfernen. Also habe ich die Fähigkeit ignorevon pipdurch diesen Code verwendet:

pip install librosa --ignore-installed llvmlite

In der Tat können Sie diese Regel verwenden, um ein Paket zu ignorieren, das Sie nicht berücksichtigen möchten:

pip install {package you want to install} --ignore-installed {installed package you don't want to consider}
hamed baziyad
quelle
1
Das ist nicht genau das, wonach die Operation gefragt hat. gemäß der Manpage -I, --ignore-installiert Ignoriert die installierten Pakete (stattdessen neu installieren). Dieses Flag installiert die angegebenen Pakete explizit neu, auch wenn sie bereits installiert sind
madmuffin