Commit 677744b3 authored by Zachary Ware's avatar Zachary Ware

Closes #25456: Copy Tcl/Tk DLLs to build directory on Windows

This removes the need to add externals/tcltk[64]/bin to PATH to be able
to import tkinter.  Also documents the necessity for the DLLs to be
on PATH or in python.exe's directory.
parent 0e316f68
......@@ -82,6 +82,9 @@ if '%build_tkinter%'=='true' (
nmake -f makefile.vc MACHINE=%machine% OPTS=%options% INSTALLDIR="%tcltkdir%" install-binaries install-libraries
popd
)
if not exist "%builddir%tcl86t%tcl_dbg_ext%.dll" (
xcopy "%tcltkdir%\bin\tcl86t%tcl_dbg_ext%.dll" "%builddir%"
)
if not exist "%tcltkdir%\bin\tk86t%tcl_dbg_ext%.dll" (
pushd "%tkdir%\win"
......@@ -90,6 +93,9 @@ if '%build_tkinter%'=='true' (
nmake -f makefile.vc MACHINE=%machine% OPTS=%options% INSTALLDIR="%tcltkdir%" TCLDIR="%tcldir%" install-binaries install-libraries
popd
)
if not exist "%builddir%tk86t%tcl_dbg_ext%.dll" (
xcopy "%tcltkdir%\bin\tk86t%tcl_dbg_ext%.dll" "%builddir%"
)
if not exist "%tcltkdir%\lib\tix8.4.3\tix84%tcl_dbg_ext%.dll" (
pushd "%tixdir%\win"
......
......@@ -225,9 +225,15 @@ _tkinter
Unlike the other external libraries listed above, Tk must be built
separately before the _tkinter module can be built. This means that
a pre-built Tcl/Tk installation is expected in ..\externals\tcltk
(tcltk64 for 64-bit) relative to this directory. See "Getting
External Sources" below for the easiest method to ensure Tcl/Tk is
built.
(tcltk64 for 64-bit) relative to this directory; the easiest way to
do so is to build Python using `build.bat -e`, which will build
Tcl, Tk, and Tix and install them as expected. Note that to
import and use tkinter, the Tcl and Tk DLLs must be somewhere that
python.exe can find them, which means that either
..\externals\tcltk[64]\bin must be added to PATH, or the DLLs must
be copied from that folder to be alongside python.exe. `build.bat`
takes care of it for you by copying the DLLs into the build
directory.
Getting External Sources
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment