Wie führen Sie ein Python-Programm auf einem Windows-server, ohne dass Python installiert?

Also schrieb ich ein Python-script, das ein paar einfache Sachen. Ursprünglich war die Ausführung auf einem Unix-server, aber aufgrund der beschissenen Netzwerk-Sicherheits-Einstellungen, die TPTB ablehnen, ändern, müssen wir Sie auf einem Windows-server statt. Aber die Administratoren der besagten Windows server verweigern nichts zu tun nützlich wie installieren von Python.

Was sind meine Optionen für das ausführen eines Python-Skripts auf Windows ohne Python?

Überlegung 1:

Etwas wie Py2Exe - ich fand das nach einer schnellen Google-Suche, und es scheint vielversprechend. Was ich sagen kann, es werde erzeugen Sie eine Reihe von Dateien, aber wir können nur xcopy das Verzeichnis unserer Windows-Maschine, und es wird völlig isoliert sein und keine externen Abhängigkeiten. Hat jemand einen Einblick, wie gut das funktioniert? Offensichtlich hängt es von meinem Python-Skript zum Glück aber dieses Skript ist ziemlich einfach und verwendet nur gebaut in Python-Bibliotheken wie urllib2 und urlparse.

Überlegung 2:

Können wir davon ausgehen das Windows-server hat zumindest eine version des .NET Framework installiert, auch das bringt IronPython in den Sinn. Ich habe noch nie verwendet, bevor, aber ich wollte schon immer. Was ich sagen kann, es wird kompiliert Python-code in CLS-kompatibel IL-code, der nativ ausgeführt werden unter der .NET-runtime. Gilt dies aber erfordern zusätzliche .NET-Bibliotheken auf dem server installiert werden? Kann ich nur bündeln diese DLLs mit meinem Programm? Oder, ist es erforderlich, die ich umschreiben, dass mein Python-Skript aufrufen .NET Framework-spezifischen Klassen statt über Dinge wie urllib2 oder urlparse?

Dank!

PS - Der ironische Teil: ich eigentlich kaum Ahnung von Python, und ich bin ein .NET-Experte, aber ich schrieb das Skript in Python, da wurde mir gesagt, es würde führen Sie auf einem Unix-server. Hätte ich gewusst, wir würden am Ende läuft dies auf einem Windows-server, ich würde geschrieben haben, die Sache in C# zu beginnen, in etwa 1/10tel der Zeit. Fail.

  • Und Sie hat das nicht als Mono? 😛
  • Dieses Gespräch gehen würde, so etwas wie: "Hey Jungs, können Sie gehen, installieren Sie Mono auf die Produktions-Unix-server für mein kleines script? Umm, ich weiß nicht, was repository, was Linux-Geschmack sind Sie? Kann man erbaut es aus diesem tarball? Hallo? Sind Sie es?"
  • Fair enough ^_^
  • Während die IronPython bietet .NET integration, lasst Euch nicht täuschen zu denken, es "kompiliert" Python in der gleichen Weise, dass, sagen wir, C# kompiliert wird. In jedem Fall, wenn IronPython laufen kann, und das Skript läuft in IronPython dann ... gewinnen. Vergewissern Sie sich, dass der server über eine entsprechende version von .NET [4 aktuelle!], allerdings 😉
Schreibe einen Kommentar