]> granicus.if.org Git - python/commitdiff
Closes #25456: Copy Tcl/Tk DLLs to build directory on Windows
authorZachary Ware <zachary.ware@gmail.com>
Sat, 24 Oct 2015 06:34:22 +0000 (01:34 -0500)
committerZachary Ware <zachary.ware@gmail.com>
Sat, 24 Oct 2015 06:34:22 +0000 (01:34 -0500)
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.

PCbuild/build.bat
PCbuild/readme.txt

index f3bc1e3b8b22f4d184a447797d90304e1b6fc3eb..0c482f5eb329fcba2f141420fcfc00f46def3676 100644 (file)
@@ -82,6 +82,9 @@ if '%build_tkinter%'=='true' (
         nmake -f makefile.vc MACHINE=%machine% OPTS=%options% INSTALLDIR="%tcltkdir%" install-binaries install-libraries\r
         popd\r
     )\r
+    if not exist "%builddir%tcl86t%tcl_dbg_ext%.dll" (\r
+        xcopy "%tcltkdir%\bin\tcl86t%tcl_dbg_ext%.dll" "%builddir%"\r
+    )\r
 \r
     if not exist "%tcltkdir%\bin\tk86t%tcl_dbg_ext%.dll" (\r
         pushd "%tkdir%\win"\r
@@ -90,6 +93,9 @@ if '%build_tkinter%'=='true' (
         nmake -f makefile.vc MACHINE=%machine% OPTS=%options% INSTALLDIR="%tcltkdir%" TCLDIR="%tcldir%" install-binaries install-libraries\r
         popd\r
     )\r
+    if not exist "%builddir%tk86t%tcl_dbg_ext%.dll" (\r
+        xcopy "%tcltkdir%\bin\tk86t%tcl_dbg_ext%.dll" "%builddir%"\r
+    )\r
 \r
     if not exist "%tcltkdir%\lib\tix8.4.3\tix84%tcl_dbg_ext%.dll" (\r
         pushd "%tixdir%\win"\r
index a3c7fbd59fecf62b441b714336677467e09bdee1..e0c6685c9e3c28f9a0d531edb6c0354edef5f2e3 100644 (file)
@@ -225,9 +225,15 @@ _tkinter
     Unlike the other external libraries listed above, Tk must be built\r
     separately before the _tkinter module can be built. This means that\r
     a pre-built Tcl/Tk installation is expected in ..\externals\tcltk\r
-    (tcltk64 for 64-bit) relative to this directory.  See "Getting\r
-    External Sources" below for the easiest method to ensure Tcl/Tk is\r
-    built.\r
+    (tcltk64 for 64-bit) relative to this directory; the easiest way to\r
+    do so is to build Python using `build.bat -e`, which will build\r
+    Tcl, Tk, and Tix and install them as expected.  Note that to\r
+    import and use tkinter, the Tcl and Tk DLLs must be somewhere that\r
+    python.exe can find them, which means that either\r
+    ..\externals\tcltk[64]\bin must be added to PATH, or the DLLs must\r
+    be copied from that folder to be alongside python.exe.  `build.bat`\r
+    takes care of it for you by copying the DLLs into the build\r
+    directory.\r
 \r
 \r
 Getting External Sources\r