Für Python 3.3+ (mit neuem venvintegrierten Modul)
Kurze Antwort (unabhängig von der Version):
- Es gibt keine saubere und direkte Möglichkeit, eine virtuelle Umgebung zu verschieben
- Einfach neu erstellen, es ist einfach !!
Lange Antwort:
Ab Python v3.3 wurde virtualenvein integriertes Modul mit dem Namen venv.
Die --relocatablein anderen Antworten erwähnte Option wurde nicht berücksichtigt venv, und derzeit gibt es keine gute und sichere Möglichkeit, eine virtuelle Python-Umgebung umzubenennen oder zu verschieben.
Es gibt jedoch eine ziemlich einfache Möglichkeit, eine virtuelle Umgebung mit all ihren aktuell installierten Paketen einfach neu zu erstellen. Informationen zum Wiederherstellen einer virtuellen Umgebung finden Sie in dieser Antwort oder im folgenden Abschnitt. Während des Vorgangs können Sie die neue Umgebung an einem beliebigen Ort und mit einem beliebigen Namen neu erstellen. Oder lesen Sie den folgenden Abschnitt für den Vorgang.
In dieser Antwort erwähnt er einige andere Pakete von Drittanbietern, die direkte Umbenennungen oder Verschiebungen unterstützen können. Wenn Sie sich dazu entschließen, eine virtuelle Umgebung intakt zu halten, können Sie prüfen, ob diese auch funktionieren venv.
Hinweis: In dieser Antwort wird virtualenveher auf als auf konzentriert venv. Weiter unten erfahren Sie, wie Sie übersetzen.
venvältere virtualenvBefehlssyntax
Der zu verwendende Befehl venvlautet:
python -m venv
anstatt nur virtualenv, was als Befehl im Originalpaket installiert wird. Wobei sich "Python" darauf bezieht, wie auch immer Sie Ihre ausführbare Python-Datei ausführen. Dies kann eine Vielzahl von Dingen sein, wie zum Beispiel:
python
pyoder py -3.7ähnlich (der Python Launcher für Windows für Python 3.3+ und Windows derzeit nur)
python3 (Konvention für Linux-Umgebungen, in denen Python 2 und 3 doppelt installiert werden)
- Wenn Sie Probleme haben, verwenden Sie den absoluten Pfad zu der ausführbaren Python-Datei, die Sie ausführen möchten: z
c:\program files\python37\python.exe
Wenn Sie sich nicht sicher sind, welche Version ausgeführt wird, können Sie dies jederzeit python --versionherausfinden.
So erstellen Sie eine virtuelle Umgebung neu
Das Erstellen / Neuerstellen einer virtuellen Umgebung ist einfach und sollte zur zweiten Natur werden, nachdem Sie ein wenig mit ihnen gearbeitet haben. Dieser Prozess spiegelt wider, was Sie tun würden, um Ihr Skript als Paket (mit seinen Abhängigkeiten) in der ersten Hälfte zu verteilen, und was dann jemand tun würde, um Ihr Skript / Paket für die weitere Entwicklung zu installieren.
Holen Sie sich zunächst eine aktualisierte Liste der Inhalte in der virtuellen Umgebung. Wenn es aktiv ist, rufen Sie die verwendete Python-Version ab und speichern Sie die Liste der Abhängigkeiten in einer Datei.
Verwenden Sie diese Option python --versionbei aktivierter virtueller Umgebung, um zu sehen, welche Python-Version verwendet wird.
- Dies dient der Übersichtlichkeit. Möglicherweise möchten Sie die Python-Version aus verschiedenen Gründen aktualisieren - zumindest auf die neueste Patch-Version
- Wenn das vorhandene venv beispielsweise Python v3.7.4 verwendet, jetzt aber v3.7.6 nicht mehr verfügbar ist, verwenden Sie stattdessen v3.7.6, das nur fehlerfreie Sicherheits- und Fehlerkorrekturen enthalten sollte.
Verwenden Sie python -m pip freeze > requirements.txtdiese Option , um die Liste der aktuellen Paketabhängigkeiten zu erstellen und in die requirements.txtDatei einzufügen. Dieser Befehl funktioniert sicher unter Linux oder Git Bash - nicht 100% sicher über Powershell oder Command Line unter Windows.
Erstellen Sie nun eine neue virtuelle Umgebung und fügen Sie die Abhängigkeiten von der alten hinzu.
Mach dein neues Venv.
- Stellen Sie sicher, dass Sie die richtige Version von Python verwenden, die Sie auf dem venv installieren möchten.
- Wenn Sie möchten, dass es genau dieselbe Python-Version ist:
- Führen Sie Python direkt aus der aktuellen virtuellen Umgebung aus (bei aktivierter Umgebung) und verwenden Sie es einfach
pythonals Befehl
- Oder verwenden Sie einen absoluten Pfad mit
python.exeim Ordner für die virtuelle Umgebung
- Für den neuen venv-Ordnereintrag im Befehl:
- Fügen Sie dem gewünschten endgültigen Ordner einen absoluten oder relativen Pfad hinzu.
- Verwenden Sie
python -m venv my_new_venvdiese Option , um eine neue virtuelle Umgebung im aktuellen Arbeitsverzeichnis in einem neuen my_new_venvOrdner zu erstellen .
- Der Name des venv-Ordners ist der Name des venv (was in der Eingabeaufforderung angezeigt wird, wenn es aktiviert ist).
Installieren Sie Ihre Abhängigkeiten aus der requirements.txtDatei.
python -m pip install -r requirements.txt
Möglicherweise müssen Sie lokale Pakete neu installieren, die sich im Entwicklungsmodus befinden.
Hinweis: Wenn Sie jemals den Speicherort anzeigen müssen, an dem ein Paket installiert ist, verwenden Sie:
python -m pip list -v
- Mit der
-vOption oder "ausführlich" werden einige zusätzliche Informationen zu jedem installierten Paket hinzugefügt, einschließlich des Pfads, in dem es installiert ist. Dies ist nützlich, um sicherzustellen, dass virtuelle, Benutzer- und Systeminstallationspakete gerade bleiben.
An dieser Stelle können Sie einfach den alten venv-Ordner und alle Inhalte löschen. Ich empfehle, dafür eine grafische Benutzeroberfläche zu verwenden. Das Löschen von Dateien über die Linux-Befehlszeile ist häufig dauerhaft, und ein kleiner Tippfehler kann eine schlechte Nachricht sein.