Skip to content

Commit

Permalink
fix: Windows DLL load issues related to PyInstaller (#377)
Browse files Browse the repository at this point in the history
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
  • Loading branch information
RobPasMue and pre-commit-ci[bot] authored Nov 9, 2024
1 parent 931c546 commit 43cc64b
Showing 1 changed file with 24 additions and 2 deletions.
26 changes: 24 additions & 2 deletions src/ansys/tools/installer/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -739,14 +739,38 @@ def _run_install_python(self, filename):
self.setEnabled(True)


def __restore_windows_dll_load():
"""Restore DLL loading on Windows.
Notes
-----
PyInstaller on Windows may break DLL loading.
This function restores the DLL loading on Windows.
"""
import sys

LOG.debug(f"sys.platform: {sys.platform}")
if sys.platform == "win32":
LOG.debug("Restoring DLL loading on Windows...")
import ctypes

ctypes.windll.kernel32.SetDllDirectoryA(None)


def open_gui():
"""Start the installer as a QT Application."""
import argparse
import ctypes

# Enable logging early
enable_logging()

if os.name == "nt":
import msvcrt

# Restore DLL loading on Windows...
__restore_windows_dll_load()

kernel32 = ctypes.windll.kernel32

# Parse command-line arguments
Expand Down Expand Up @@ -776,8 +800,6 @@ def open_gui():
sys.stdout = open("CONOUT$", "w")
sys.stderr = open("CONOUT$", "w")

enable_logging()

app = QtWidgets.QApplication(sys.argv)
window = AnsysPythonInstaller()

Expand Down

0 comments on commit 43cc64b

Please sign in to comment.