diff options
author | Zachary Ware <zachary.ware@gmail.com> | 2015-10-24 06:34:22 (GMT) |
---|---|---|
committer | Zachary Ware <zachary.ware@gmail.com> | 2015-10-24 06:34:22 (GMT) |
commit | 677744b3861f446ede2db16fba2e55c3764aa85f (patch) | |
tree | a4c50652b4ce88cfc51e500fd88777a49a42441f /PCbuild | |
parent | 0e316f688ef2499fe31ea7cf8e4884cf22863b0d (diff) | |
download | cpython-677744b3861f446ede2db16fba2e55c3764aa85f.zip cpython-677744b3861f446ede2db16fba2e55c3764aa85f.tar.gz cpython-677744b3861f446ede2db16fba2e55c3764aa85f.tar.bz2 |
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.
Diffstat (limited to 'PCbuild')
-rw-r--r-- | PCbuild/build.bat | 6 | ||||
-rw-r--r-- | PCbuild/readme.txt | 12 |
2 files changed, 15 insertions, 3 deletions
diff --git a/PCbuild/build.bat b/PCbuild/build.bat index f3bc1e3..0c482f5 100644 --- a/PCbuild/build.bat +++ b/PCbuild/build.bat @@ -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"
diff --git a/PCbuild/readme.txt b/PCbuild/readme.txt index a3c7fbd..e0c6685 100644 --- a/PCbuild/readme.txt +++ b/PCbuild/readme.txt @@ -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
|