Frage

Ich brauche eine große Anzahl von Windows XP-Maschinen halten die gleiche Version von Python ausgeführt wird, mit einer Auswahl von Modulen, von denen einem Python-win32. Ich dachte über Python auf einem Netzlaufwerk zu installieren, die von allen Client-Maschinen montiert ist, und stellen Sie einfach den Pfad auf dem Clients. Python startet in Ordnung aus dem Netz, aber beim Import win32com ich einen Pop-up-Fehler sagen:

  

Das Verfahren Einstiegspunkt? PyWinObject_AsHANDLE @@ YAHPAU_object @@ PAPAXH @ Z konnte nicht in der Dynamic Link Library pywintypes24.dll

befindet

Nach der Meldung Dialog Entlassung ich in der Konsole:

  

Import: DLL Last fehlgeschlagen: Die angegebene Prozedur konnte nicht gefunden werden

.

Ich suchte das Python-Verzeichnis für die pywintypes24.dll und es ist in "Lib \ site-packages \ pywin32_system32".

Was bin ich fehlt und gibt es eine andere Art und Weise, in der ich einmal Python + Python-Win32 + Zusatzmodul sie installieren können und auf vielen Rechnern laufen? Ich habe keinen Zugriff auf die System-Management-Tools von Microsoft, so dass ich ein bisschen mehr Low-Tech als sein muß.

War es hilfreich?

Lösung

Auf jeder Maschine müssen Sie grundsätzlich folgende pywin32_postinstall.py -install einmal ausgeführt. Angenommen, Ihre Python-Installation im Netzwerk ist N:\Python26, führen Sie folgenden Befehl auf jedem Client:

N:\Python26\python.exe N:\Python26\Scripts\pywin32_postinstall.py -install

Eine weitere wichtige Sache ist Good Luck!. Der Grund dafür ist, dass Sie dies tun, wie admin benötigen. In meinem Fall war eine solche Einrichtung für alle bis auf einen Computer. Ich habe immer noch nicht herausfinden, warum.

Andere Tipps

Python (oder gerade, die OS) durchsucht den DLLs mit os.environ [ "PATH"] und nicht durch sys.path suchen.

So Sie Python mit einer einfachen .cmd-Datei starten könnte stattdessen die \ Server \ share \ python26 auf den Pfad fügt hinzu (bei den Installer (oder Sie) kopiert die DLLs von \ Server \ share \ python26 \ lib \ site-packages \ pywin32-system32 zu \ Server \ share \ python26).

Alternativ können Sie den folgenden Code, um Ihre Skripte hinzufügen, bevor sie versuchen, win32api etc zu importieren:

    # Add Python installation directory to the path, 
    # because on Windows 7 the pywin32 installer fails to copy
    # the required DLLs to the %WINDIR%\System32 directory and
    # copies them to the Python installation directory instead.
    # Fortunately, in Python it is possible to modify the PATH
    # before loading the DLLs.
    os.environ["PATH"] = sys.prefix + ";" + os.environ.get("PATH")
    import win32gui
    import win32con

"" "Ich suchte das Python-Verzeichnis für die pywintypes24.dll und es ist in "Lib \ site-packages \ pywin32_system32" """. Die Existenz der DLL ist nicht in Frage. Ist das Eintrittspunkt in dieser dll?

Haben Sie versucht, auf einem Nicht-Netzwerk-Laufwerk genau die gleiche Konfiguration zu installieren?

Haben Sie andere Module im Paket versucht, den Import?

Haben Sie den DLLs mit dem Dependency Walker oder etwas ähnliches überprüft?

Ist die "24" in pywintypes24.dll Mittelwert Python 2.4? Welche Version von Python sind Sie?

könnten Sie verwenden Batch-Dateien beim Booten laufen

  • Montieren Sie die Netzwerkfreigabe (net use \\server\share)
  • Kopieren Sie den Python und Pakete Installateure von der Netzwerkfreigabe in einem lokalen Ordner
  • Überprüfen Version des MSI-Installationsprogramm gegen die installierte Version
  • Wenn andere, deinstallieren Python und alle Version abhängige Pakete
  • Installieren Sie alle Pakete

Das wäre so ziemlich eine Rolle Ihr eigenes zentrales Management-System für diese Software.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top