gh-126084: Fix venvwlauncher.exe to run pythonw.exe (GH-126088)

(cherry picked from commit 802d405ff1)

Co-authored-by: Christian Ullrich <chris@chrullrich.net>
This commit is contained in:
Miss Islington (bot) 2024-10-29 21:20:05 +01:00 committed by GitHub
parent 5ce23f2703
commit 8dc0575047
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 24 additions and 1 deletions

View File

@ -872,6 +872,27 @@ class BasicTest(BaseTest):
else:
self.assertFalse(same_path(path1, path2))
# gh-126084: venvwlauncher should run pythonw, not python
@requireVenvCreate
@unittest.skipUnless(os.name == 'nt', 'only relevant on Windows')
def test_venvwlauncher(self):
"""
Test that the GUI launcher runs the GUI python.
"""
rmtree(self.env_dir)
venv.create(self.env_dir)
exename = self.exe
# Retain the debug suffix if present
if "python" in exename and not "pythonw" in exename:
exename = exename.replace("python", "pythonw")
envpyw = os.path.join(self.env_dir, self.bindir, exename)
try:
subprocess.check_call([envpyw, "-c", "import sys; "
"assert sys._base_executable.endswith('%s')" % exename])
except subprocess.CalledProcessError:
self.fail("venvwlauncher.exe did not run %s" % exename)
@requireVenvCreate
class EnsurePipTest(BaseTest):
"""Test venv module installation of pip."""

View File

@ -0,0 +1,2 @@
Fix venvwlauncher to launch pythonw instead of python so no extra console
window is created.

View File

@ -92,7 +92,7 @@
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>EXENAME=L"$(PyExeName)$(PyDebugExt).exe";_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>EXENAME=L"$(PyWExeName)$(PyDebugExt).exe";_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<ResourceCompile>