Tragbare Python -Bündel unter Windows
Verpacken Sie die Python -Anwendung und ihre Umgebung an MS Windows, damit andere Benutzer sie verwenden können, damit sie "jederzeit ausführen" kann, was eine schwierige Aufgabe ist. Dieser Blog -Artikel beschreibt meine persönliche Lösung: Ich nenne es die Windows -Version von Python Bundle , er ähnelt der virtuellen Umgebung, kann jedoch zwischen Maschinen transplantiert werden.
Python Bundle befindet sich in einer virtuellen Umgebung, einer konventionellen Python -Installation und einer unabhängigen ausführbaren Dateien, die von unabhängigen ausführbaren Dateien bereitgestellt werden, die von Tools wie PyInstaller oder PY2Exe erstellt wurden.
Erstellen eines solchen Bündels erfordert keine neuen Tools. Dies ist nur eine lockere und leichte Vereinbarung, für die Ordnerstruktur und einige Verpackungsskripte können Sie sie problemlos manuell erstellen. Oder automatisiert ihre Erstellung in Skripten oder CI -Operationen.
Nehmen wir an, wir müssen die Python -Anwendung oder -umgebung an unsere Benutzer verpacken, um "jederzeit auszuführen".
Wir wissen möglicherweise nicht, welche Version von Python, die wir installiert haben, oder es ist überhaupt nicht installiert. Wir wollen nie die Python -Installationen manipulieren, die sie möglicherweise bereits existieren, einschließlich nicht, dass sie nicht um die Installation zusätzlicher Python -Versionen bitten. Mit anderen Worten: Unser Softwarepaket sollte alles sein, was wir benötigen, um unsere Anwendung auszuführen oder unsere Python -Umgebung zu nutzen.
Das Problem der virtuellen Umgebung
Nach einer Kombination aus gutem Nachdenken können wir uns eine virtuelle Umgebung (Python -m Venv venv_dir) erstellen, alle Inhalte in die virtuelle Umgebung installieren und dann den Ordner der virtuellen Umgebung an unsere Benutzer komprimieren und verteilen. Wir sind uns jedoch bewusst, dass der Ordner der virtuellen Umgebung den Weg, der sich von seiner Erstellungsposition unterscheidet, nicht leicht zu streichen. Darüber hinaus hängt unsere virtuelle Umgebung auch von der grundlegenden Python -Installation zum Erstellen ab (unter Verwendung derselben Python -Version unter diesem Pfad). Daher müssen wir unseren Benutzern sagen, wo sie eine Kopie der virtuellen Umgebung einstellen sollen. Und sie müssen eine bestimmte Version von Python unter einem bestimmten Weg installieren. Das wollen wir nicht.
Python -Installationsproblem
Wir können alle Anforderungen in der konventionellen Python -Installation installieren und dann ihre Ordner (z. B. C: Programm Filespython 3.13.1) anstelle der virtuellen Umgebung komprimieren und verteilen. Dieses am effektivsten
. Das Python -Installationsverzeichnis unter Windows kann in der Regel verschiedene Pfade angeben (dies ist nicht der Fall, da das statische Präfixpfad auf dem UNIX -aber ein weiteres Thema ist).Es gibt jedoch einen großen Defekt: Die Existenz des Skripts kann die Datei ausführen (die .exe -Datei im Verzeichnis. Eine ausführbare Datei kann ausgeführt werden. Diese Skripte können ausführen, die Dateien ausführen können, die von dem Python -Installationspfad abhängen, der in seinem "selbst" schwer codiert ist.
Probleme mit PyInstaller
Tools wie PyInstaller oder Py2exe können eine Python-Anwendung und alle ihre Abhängigkeiten in einem einzigen Paket bündeln. Benutzer müssen keinen Python-Interpreter oder andere Module installieren, um gepackte Anwendungen auszuführen.
Dies hat unsere Vertriebsanforderungen perfekt erfüllt. Der Nachteil besteht jedoch darin, dass wir keine vollständige Python-Umgebung, sondern ein benutzerdefiniertes, vereinfachtes Bundle-Format verteilen. Dies könnte das richtige Tool zum Verpacken Ihrer Anwendung sein. Dies gilt jedoch nicht, wenn wir unseren Benutzern beispielsweise ein „Starterkit“ einer Python-Umgebung senden möchten, die in einer IDE verwendet und mit zusätzlichen Pip-Installationen usw. erweitert werden kann. Wir suchen nach einer allgemeineren Lösung.
Lernen Sie das Python-Bundle kennen!
Erstellen Sie ein Bundle von Grund auf
Wir beginnen in Powershell mit der Erstellung eines Ordners für unser Bundle:
<code>mkdir bundle cd bundle</code>
Dann fügen wir eine Python-Installation in
<code>curl.exe -L "https://www.nuget.org/api/v2/package/python/3.13.1" -o python3.zip Expand-Archive .\python3.zip -DestinationPath extracted_nuget move .\extracted_nuget\tools python3 rm -R extracted_nuget rm -R .\python3.zip</code>
Jetzt sieht unser Bundle so aus:
<code>bundle └───python3 ├───python3.exe ├───Lib/ ├───...</code>
Fügen wir auch ein Skriptverzeichnis hinzu:
<code>mkdir python3\Scripts</code>
Wir haben Pip noch nicht aktiviert, also machen wir das jetzt.
<code>python3\python.exe -m ensurepip</code>
Um das Problem zu lösen, dass pip .exe-Dateien im Skriptverzeichnis erstellt, die auf hartcodierten Python-Installationspfaden basieren, verwenden wir ein Wrapper-Skript für pip, das das Verhalten von pip korrigiert.
Lassen Sie uns eine Datei erstellen
<code>#!/usr/bin/python import sys import os if __name__ == "__main__": from pip._vendor.distlib.scripts import ScriptMaker ScriptMaker.executable = r"python.exe" from pip._internal.cli.main import main sys.exit(main())</code>
Wie funktioniert es? Immer wenn wir ein Paket über unser Wrapper-Skript installieren (z. B. python3python.exe pip_wrapperscriptspip.py
Natürlich gibt es Risiken und Konsequenzen. Unsere Aufgabe besteht nun darin, sicherzustellen, dass, wenn jemand eine solche „gepatchte“ Scripts*.exe-Datei ausführt, die richtige python.exe in der PATH-Variablen enthalten ist. Aus diesem Grund muss unser Bundle vom Benutzer aktiviert werden, ähnlich wie in einer virtuellen Umgebung. Wir werden das später besprechen.
(Weitere Informationen zu dieser Kernverpackungsidee finden Sie hier)
Wäre es nicht schön, wenn wir auch eine pip.exe für unseren Pip-Wrapper hätten? Auf diese Weise können wir in Zukunft nur noch Pip-Befehle verwenden (und müssen nicht Python pip.py verwenden)? Lassen Sie uns eines erstellen. Natürlich muss es auch portabel sein, weshalb wir es auf ähnliche Weise erstellen werden.
Dazu erstellen wir einen
<code>mkdir bundle cd bundle</code>
Dann verwenden wir Python3python.exe, um eine Python -Shell (repl) zu starten und den folgenden Code auszuführen, um PIP.Exe zu erstellen.
<code>curl.exe -L "https://www.nuget.org/api/v2/package/python/3.13.1" -o python3.zip Expand-Archive .\python3.zip -DestinationPath extracted_nuget move .\extracted_nuget\tools python3 rm -R extracted_nuget rm -R .\python3.zip</code>
Unsere Ordnerstruktur sollte jetzt wie folgt angezeigt werden:
<code>bundle └───python3 ├───python3.exe ├───Lib/ ├───...</code>
vergleiche
**Bundle** | **虚拟环境** | **Python安装** | **Pyinstaller** | |
**路径独立(可以复制到文件系统中的任何路径)?** | 是 | 否 (Python安装路径硬编码在虚拟环境中) | 否 (.\scripts\*.exe文件将中断) | 是 |
**可以在同一系统上有多个实例** | 是 | 是 | 没有问题 (概念是一个Python版本每个用户或系统一个Python安装) | 是 |
**磁盘使用情况** | 大 (包含完整的Python安装) | 小 (依赖于Python安装) | 大 | 中等 |
**需要激活** | 是 | 是 | 否 | 否 |
**单个可执行文件** | 否 | 否 | 否 | 是 |
**可以用作常规Python安装(REPL、pip、脚本等)** | 是 | 是 | 是 | 否 |
**可以与IDE一起使用?** | 是,但您可能需要在IDE的运行/调试配置文件中配置环境变量 | 是 | 是 | 否 |
Das obige ist der detaillierte Inhalt vonTragbare Python -Bündel unter Windows. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Python ist leichter zu lernen und zu verwenden, während C leistungsfähiger, aber komplexer ist. 1. Python -Syntax ist prägnant und für Anfänger geeignet. Durch die dynamische Tippen und die automatische Speicherverwaltung können Sie die Verwendung einfach zu verwenden, kann jedoch zur Laufzeitfehler führen. 2.C bietet Steuerung und erweiterte Funktionen auf niedrigem Niveau, geeignet für Hochleistungsanwendungen, hat jedoch einen hohen Lernschwellenwert und erfordert manuellem Speicher und Typensicherheitsmanagement.

Um die Effizienz des Lernens von Python in einer begrenzten Zeit zu maximieren, können Sie Pythons DateTime-, Zeit- und Zeitplanmodule verwenden. 1. Das DateTime -Modul wird verwendet, um die Lernzeit aufzuzeichnen und zu planen. 2. Das Zeitmodul hilft, die Studie zu setzen und Zeit zu ruhen. 3. Das Zeitplanmodul arrangiert automatisch wöchentliche Lernaufgaben.

Python ist in der Entwicklungseffizienz besser als C, aber C ist in der Ausführungsleistung höher. 1. Pythons prägnante Syntax und reiche Bibliotheken verbessern die Entwicklungseffizienz. 2. Die Kompilierungsmerkmale von Compilation und die Hardwarekontrolle verbessern die Ausführungsleistung. Bei einer Auswahl müssen Sie die Entwicklungsgeschwindigkeit und die Ausführungseffizienz basierend auf den Projektanforderungen abwägen.

Ist es genug, um Python für zwei Stunden am Tag zu lernen? Es hängt von Ihren Zielen und Lernmethoden ab. 1) Entwickeln Sie einen klaren Lernplan, 2) Wählen Sie geeignete Lernressourcen und -methoden aus, 3) praktizieren und prüfen und konsolidieren Sie praktische Praxis und Überprüfung und konsolidieren Sie und Sie können die Grundkenntnisse und die erweiterten Funktionen von Python während dieser Zeit nach und nach beherrschen.

Python und C haben jeweils ihre eigenen Vorteile, und die Wahl sollte auf Projektanforderungen beruhen. 1) Python ist aufgrund seiner prägnanten Syntax und der dynamischen Typisierung für die schnelle Entwicklung und Datenverarbeitung geeignet. 2) C ist aufgrund seiner statischen Tipp- und manuellen Speicherverwaltung für hohe Leistung und Systemprogrammierung geeignet.

PythonlistsarePartThestandardlibrary, whilearraysarenot.listarebuilt-in, vielseitig und UNDUSEDFORSPORINGECollections, während dieArrayRay-thearrayModulei und loses und loses und losesaluseduetolimitedFunctionality.

Python zeichnet sich in Automatisierung, Skript und Aufgabenverwaltung aus. 1) Automatisierung: Die Sicherungssicherung wird durch Standardbibliotheken wie OS und Shutil realisiert. 2) Skriptschreiben: Verwenden Sie die PSUTIL -Bibliothek, um die Systemressourcen zu überwachen. 3) Aufgabenverwaltung: Verwenden Sie die Zeitplanbibliothek, um Aufgaben zu planen. Die Benutzerfreundlichkeit von Python und die Unterstützung der reichhaltigen Bibliothek machen es zum bevorzugten Werkzeug in diesen Bereichen.

Zu den wichtigsten Anwendungen von Python in der Webentwicklung gehören die Verwendung von Django- und Flask -Frameworks, API -Entwicklung, Datenanalyse und Visualisierung, maschinelles Lernen und KI sowie Leistungsoptimierung. 1. Django und Flask Framework: Django eignet sich für die schnelle Entwicklung komplexer Anwendungen, und Flask eignet sich für kleine oder hochmobile Projekte. 2. API -Entwicklung: Verwenden Sie Flask oder Djangorestframework, um RESTFUFFUPI zu erstellen. 3. Datenanalyse und Visualisierung: Verwenden Sie Python, um Daten zu verarbeiten und über die Webschnittstelle anzuzeigen. 4. Maschinelles Lernen und KI: Python wird verwendet, um intelligente Webanwendungen zu erstellen. 5. Leistungsoptimierung: optimiert durch asynchrones Programmieren, Caching und Code
