[PYTHON] Verschiedene Möglichkeiten, .py-Dateien unter Windows auszuführen

So führen Sie eine normale .py-Datei aus

Schreiben Sie, wie Sie eine Wrapper-Datei in einer Windows-Umgebung erstellen. Normalerweise sollte dies bei der Ausführung über eine Eingabeaufforderung oder dergleichen erfolgen. (Angenommen, der Pfad des Verzeichnisses mit python.exe ist vorhanden.)

C:\Users\testuser> python C:\Users\testUser\pyruntest.py
→pyruntest.py Ausführungsergebnis wird ausgegeben

Wenn Sie jedoch keine python.exe mit Ihrer .py-Datei verknüpft haben, können Sie dies nicht tun.

C:\Users\testuser> pyruntest.py
→ Fehler

1. Erstellen Sie einen Wrapper mit Bat-Datei oder Cmd-Datei

@echo off
%PYTHONPATH%\python.exe %~dp0\%~n0.py %*

Zum Beispiel, wenn Sie das Obige unter dem Dateinamen pyruntest.bat speichern Sie können pyruntest.py wie folgt im selben Verzeichnis wie pyruntest.bat ausführen:

C:> pyruntest.bat
→pyruntest.py Ausführungsergebnis wird ausgegeben

Sie können von überall aus gehen, wenn Sie durch den Pfad gehen Wenn Sie .bat nicht eingeben möchten, ändern Sie die Erweiterung in .cmd.

C:> pyruntest
→pyruntest.py Ausführungsergebnis wird ausgegeben

2. Machen Sie eine Exe in C #.

Normalerweise gibt es kein Problem mit Methode 1, aber um mehrere Dateien zu verarbeiten, möchten Sie diese als Argumente verarbeiten Wenn ich es per Drag & Drop auf .cmd ziehe, wird dieser Fehler angezeigt.

Für den Befehl wurden zu viele Befehlszeilenargumente angegeben. Geben Sie den richtigen Wert an und versuchen Sie es erneut.

Die Ursache ist die Beschränkung von cmd.exe? 2047 Zeichen oder 8191 Zeichen (WinXP oder höher) scheint das Maximum zu sein. Powershell hat dieses Limit nicht, aber es ist eine heikle Art, .ps1 mit einem Doppelklick auszuführen. .. Was für ein schlechtes Terminal, ich wünschte, Powershell, eine Eingabeaufforderung, würde von der Welt verschwinden. Es sollte möglich sein, es zu lösen, wenn es in exe konvertiert wird.

Möglicherweise besteht die einzige Möglichkeit, es in einem solchen Fall zu verwenden, darin, das exe-Ausführungsformat zu verwenden. Es gibt verschiedene Möglichkeiten, es zu einer Exe zu machen.

Immerhin dachte ich, ich würde es mit Javascript schaffen, aber ich war frustriert und entschied mich, es mit C # zu schaffen.

pyruntest.cs Ich bin ein C # -Einsteiger und es gibt viele Dinge, die ich nicht verstehe, aber ich bin umgezogen, also werde ich es aufdecken.

using System;
using System.Diagnostics;
using System.ComponentModel;

class Program
    {
    static void Main(string[] args)
    {
	    // Python Program Path
	    var pythonScriptPath = System.Reflection.Assembly.GetExecutingAssembly().Location.Replace(".exe", "") + ".py";
	    
	    try
	    {
	        var startInfo = new ProcessStartInfo()
	        {
	            FileName = @"python.exe",
	            UseShellExecute = false,
	            Arguments = "\"" + pythonScriptPath + "\" \"" + string.Join("\" \"", args),
	    	};
	    	
		    using (var process = Process.Start(startInfo))
	        {
	            process.WaitForExit();
	        }

		}
    	catch (Win32Exception)
    	{
    		Console.WriteLine("python.Die Exe wurde nicht gefunden. Zur Umgebungsvariablen PATH hinzufügen");
    	}

    }
}

Beim Kompilieren mit csc.exe wird pyruntest.exe erstellt

C:\Users\testuser> C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe pyruntest.cs
C:\Users\testuser> pyruntest.exe
→pyruntest.py Ausführungsergebnis wird ausgegeben
C:\Users\testuser> pyruntest
→ Natürlich ist das immer noch am pyruntesten.py Ausführungsergebnis wird ausgegeben

Wenn Sie es ordnungsgemäß über den Pfad der Umgebungsvariablen angeben, kann es unabhängig vom aktuellen Verzeichnis ausgeführt werden

C:\Users\testuser> set PATH=%PATH%;%CD%
C:\Users\testuser> setx PATH %PATH%
C:\Users\testuser> cd \
C:> pyruntest
→pyruntest.py Ausführungsergebnis wird ausgegeben

Methode 1 und Methode 2 haben einen gemeinsamen Mechanismus: Allgemeine Spezifikationen für die obige Ausführungsmethode: Platzieren Sie [. Ich möchte ausführen] .bat oder [Ich möchte ausführen] .cmd oder [Ich möchte ausführen] .exe im selben Verzeichnis wie [Ich möchte ausführen] .py. (Jetzt müssen Sie die Wrapper-Quelle nicht jedes Mal ändern.)

Nebenbei) Der Grund, warum ich das mache, ist, dass wenn es ein Heim-PC ist, es vorbei ist, wenn Sie die Zuordnung festlegen. In einer Thin Client-Umgebung für die Arbeit konnte ich die Einstellungen nicht ohne Berechtigung ändern Sie benötigen eine solche Kreisverkehrsverpackung. Es ist eine unbequeme Welt geworden.

Recommended Posts

Verschiedene Möglichkeiten, .py-Dateien unter Windows auszuführen
Python 3.6 unter Windows ... und zu Xamarin.
Verwendung von Dataiku unter Windows
So stellen Sie den Django-Kompressor unter Windows bereit
Bringen Sie Dateien in Windows zur WSL
So installieren Sie Musik 21 unter Windows
[Kivy] So installieren Sie Kivy unter Windows [Python]
So verwenden Sie Google Assistant unter Windows 10
So installieren Sie Richzhang / Colorization unter Windows 10
Verschiedene Möglichkeiten, ein Wörterbuch zu erstellen (Erinnerungen)
So finden Sie große Dateien unter Linux
Verschiedene Möglichkeiten, Ressourcen mit Umfang zu zerstören
[Python] Listenverständnis Verschiedene Möglichkeiten zum Erstellen einer Liste
[Jupyter Notebook / Lab] Drei Möglichkeiten zum Debuggen auf Jupyter [Pdb]
Setzen Sie MicroPython unter Windows ein, um ESP32 unter Python auszuführen
So installieren Sie h5py schnell unter Windows 10 [Inoffiziell]
Wie man mit 2017 Windows ein anständiges Leben führt
Ich möchte pyenv + pipenv auch unter Windows machen
[Python] So installieren Sie OpenCV unter Anaconda [Windows]
[Windows] Memo zur Verwendung von Keras auf der GPU [Tensorflow-GPU]
So installieren / überprüfen Sie graphviz unter anaconda / windows10
Schritte zum Erstellen von PyTorch 1.5 für CUDA 10.2 unter Windows
Python unter Windows
Konvertieren Sie die JPYTER-Notebook-IPynb-Datei in die ausführbare Python-Py-Datei
Verschiedene Methoden zum Extrahieren von Spalten des NumPy-Arrays
So binden Sie mod_wsgi in Apache unter Python Windows ein
Versuchen Sie es auf verschiedene Arten zu lösen (SAT, CSP)
So führen Sie Django unter IIS auf einem Windows-Server aus
2 Möglichkeiten, alle CSV-Dateien in einem Ordner zu lesen
Hinweise zum Betrieb von Firefox mit Selen unter Windows