<p>pipenv respektiert die aktuell aktivierte virtuelle Umgebung nicht und erstellt eine neue Umgebung</p>

Erstellt am 2. Nov. 2017  ·  3Kommentare  ·  Quelle: pypa/pipenv

Ich bin mir nicht sicher, ob dies ein erwartetes Verhalten ist, aber aus Sicht der Nutzung scheint dies ein Fehler zu sein:

Problem:

pipenv install <package_name> erstellt eine neue virtuelle Umgebung, obwohl die virtuelle Umgebung mit pipenv shell aktiviert wurde.

Wann tritt es auf:

wenn wir uns nicht im selben Verzeichnis befinden, in dem sich Pipfile befindet.

Beschreiben Sie Ihre Umgebung

  1. Betriebssystemtyp: Linux (Ubuntu 16.04)
  2. Python-Version: $ python -V == 3.6.3
  3. Pipenv-Version: $ pipenv --version == Version 8.3.1

Erwartetes Ergebnis

Wenn wir uns in einer aktivierten virtualenv-Shell befinden (unabhängig von pwd ) sollte pipenv install respektieren und die Pipfile korrekt aktualisieren und sollte kein neues Pipfile erstellen.

Tatsächliche Ergebnis

Es wird ein neues Pipfile erstellt, auch wenn in derselben aktivierten virtualenv, aber in einem anderen Verzeichnis.

Schritte zum Replizieren

$ mkdir -p testproject/app
$ cd  testproject/app
$ pipenv install flask
$ pipenv shell # environment gets activated here
$ <my_new_environment>$  cd ..  # Now we are inside testproject
$ pipenv install requests
$ New Pipfile gets created here

Hilfreichster Kommentar

@erinxocon Und hier liegt das Problem: Benutzer erwarten, dass pipenv ein Ersatz für pip ist.

@kennethreitz hat es selbst auf der pipenv-Homepage gesagt:

Sie müssen pip und virtualenv nicht mehr separat verwenden. Sie arbeiten zusammen.

pipenv soll die virtualenv nicht nur erstellen, wie Sie sagten, sondern auch verwalten . Auch hier wird es explizit auf der Homepage erwähnt (Hervorhebung von mir):

Es erstellt und verwaltet automatisch eine virtuelle Umgebung für Ihre Projekte und fügt Pakete zu Ihrem Pipfile hinzu/entfernt sie, während Sie Pakete installieren/deinstallieren.

Früher, als wir virtualenv und pip getrennt verwendeten, konnten wir zu jedem Verzeichnis und pip install navigieren, und das Paket wurde korrekt in virtualenv installiert -Managed Virtualenv ist aktiviert_ bricht die Erwartungen des Benutzers.

Alle 3 Kommentare

Hallo @ansrivas! Dies ist nicht der beabsichtigte Fluss von Pipenv. Pipenv verwendet eine virtuelle Umgebung, wenn es sich anfangs in einer befindet, jedoch nicht bei allen nachfolgenden Aufrufen. Sie hätten ein ziemlich haariges Nest von Virtualenvs! Wenn Sie zu einem Ordner navigieren, der sich außerhalb des Projekts befindet, erstellt pipenv eine neue Pipdatei. Wenn Sie nur einige Pakete außerhalb des Ordners installieren möchten, aber innerhalb der Virutalen-Umgebung, die Sie in der Subshell aktiviert haben, können Sie pipenv shell und dann pip install requests ausführen. Pipenv kann verwendet werden, um eine Virtualenv für Ihr Projekt zu erstellen, aber es ist an sich kein Virtualenv-Manager, sondern ein Projektmanager.

@erinxocon Und hier liegt das Problem: Benutzer erwarten, dass pipenv ein Ersatz für pip ist.

@kennethreitz hat es selbst auf der pipenv-Homepage gesagt:

Sie müssen pip und virtualenv nicht mehr separat verwenden. Sie arbeiten zusammen.

pipenv soll die virtualenv nicht nur erstellen, wie Sie sagten, sondern auch verwalten . Auch hier wird es explizit auf der Homepage erwähnt (Hervorhebung von mir):

Es erstellt und verwaltet automatisch eine virtuelle Umgebung für Ihre Projekte und fügt Pakete zu Ihrem Pipfile hinzu/entfernt sie, während Sie Pakete installieren/deinstallieren.

Früher, als wir virtualenv und pip getrennt verwendeten, konnten wir zu jedem Verzeichnis und pip install navigieren, und das Paket wurde korrekt in virtualenv installiert -Managed Virtualenv ist aktiviert_ bricht die Erwartungen des Benutzers.

Da stimme ich

Es wird erwartet, dass pipenv die aktive virtuelle Umgebung verwalten sollte.

In ähnlicher Weise ... Ich sollte in der Lage sein, -r zu verwenden, um eine externe Pipfile oder Pipenv.lock in die aktuelle Virtualenv zu installieren und keine andere zu erstellen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen