This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Tix not included in windows distribution
Type: Stage:
Components: Tkinter Versions: Python 2.3
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: loewis Nosy List: digulla, gvanrossum, idiscovery, jimjjewett, loewis, mjpieters, monos, theller, tim.peters
Priority: normal Keywords:

Created on 2001-10-25 11:22 by anonymous, last changed 2022-04-10 16:04 by admin. This issue is now closed.

Messages (31)
msg7167 - (view) Author: Nobody/Anonymous (nobody) Date: 2001-10-25 11:22
Although there is a Tix.py available, there is no Tix
support in the precomiled 
Python-distribution for windows. So 

import Tix

works fine, but

root = Tix.Tk()

results in 

TclError: package not found. 

It is possible to circumvent this problem by installing
a regular Tcl/Tk distribution (e.g. in
c:\programme\tcl) and installing Tix in the regular
Tcl-path (i.e. tcl\lib).

Mathias
msg7168 - (view) Author: Tim Peters (tim.peters) * (Python committer) Date: 2001-10-25 18:26
Logged In: YES 
user_id=31435

I don't know anything about Tix, so if somebody wants this 
in the Windows installer, they're going to have to explain 
exactly (by which I mean exactly <0.5 wink>) what's needed.
msg7169 - (view) Author: Mathias Palm (monos) Date: 2001-10-29 11:53
Logged In: YES 
user_id=361926

As mentioned in the mail above (by me, Mathias), Tix is a
package belonging to Tcl/Tk (to be found on sourceforge:
tix.sourceforge.net, or via the Python home page - tkinter
link). 

Everything needed can be found there, just read about it
(and dont forget about the winking,  eyes might be getting
dry)

Mathias

msg7170 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2002-02-25 12:56
Logged In: YES 
user_id=21627

Building Tix from sources is non-trivial, and I could not 
find any recent Windows binary distribution (based on Tix 
8.1). So I'll attach a build of Tix 8.1.3 for Tcl/Tk 8.3, 
as a drop-in into the Python binary distribution.

Compared to the original distribution, only tix8.1
\pkgIndex.tcl required tweaking, to tell it that 
tix8183.dll can be found in the DLLs subdirectory.

Also, unless TIX_LIBRARY is set, the Tix tcl files *must* 
live in tcl\tix8.1, since tix8183.dll will look in 
TCL_LIBRARY\..\tix<TIX_VERSION> (among other locations).

If a major Tcl release happens before Python 2.3 is 
released (and it is then still desirable to distribute 
Python with Tix), these binaries need to be regenerated.

Would these instructions (unpack zip file into 
distribution tree) be precise enough to allow 
incorporation into the windows installer?
msg7171 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2002-02-25 12:57
Logged In: YES 
user_id=21627

The zip file is slightly too large for SF, so it is now at

http://www.informatik.hu-
berlin.de/~loewis/python/tix813win.zip
msg7172 - (view) Author: Mathias Palm (monos) Date: 2002-03-07 13:38
Logged In: YES 
user_id=361926

Thanks.

Mathias
msg7173 - (view) Author: Tim Peters (tim.peters) * (Python committer) Date: 2002-03-10 01:48
Logged In: YES 
user_id=31435

Guido, do you want me to spend time on this?
msg7174 - (view) Author: Guido van Rossum (gvanrossum) * (Python committer) Date: 2002-03-23 03:34
Logged In: YES 
user_id=6380

Yes, for 2.3.
msg7175 - (view) Author: Internet Discovery (idiscovery) Date: 2002-11-03 05:34
Logged In: YES 
user_id=33229

I would really like to see Tix in 2.3 and will be glad to help.
AFAIK there are no major issues with tix-8.1.3 and Python 2.x
and it should be a simple drop in of a cannonically compiled Tix.

If there are any issues that need dealing with at Tix's end, I'll be 
glad to put out a new minor release of Tix to address them.

On Python's end I've suggested a fix for http://python.org/sf/564729

FYI, please also see my comments for bug 632323.
msg7176 - (view) Author: Internet Discovery (idiscovery) Date: 2002-11-03 07:30
Logged In: YES 
user_id=33229

I would really like to see Tix in 2.3 and will be glad to help.
AFAIK there are no major issues with tix-8.1.3 and Python 2.x
and it should be a simple drop in of a cannonically compiled Tix.

If there are any issues that need dealing with at Tix's end, I'll be 
glad to put out a new minor release of Tix to address them.

On Python's end I've suggested a fix for http://python.org/sf/564729

FYI, please also see my comments for bug 632323.
msg7177 - (view) Author: Guido van Rossum (gvanrossum) * (Python committer) Date: 2002-11-07 14:52
Logged In: YES 
user_id=6380

I support this. Tim, I know you're not a big Tk user (to say
the least). I'll offer to help in person.
msg7178 - (view) Author: Tim Peters (tim.peters) * (Python committer) Date: 2002-11-18 16:35
Logged In: YES 
user_id=31435

Does Tix 8.1.3 play with Tcl/Tk 8.4.1?  The 2.3. Windows 
distro is set up to include the latter now.  The 
win\common.mak file from Tix 8.1.3 doesn't have a section 
for Tcl/Tk 8.4, though.

There appear to be several reasons Tix won't compile on 
my box anyway without fiddling the Tix makefiles (e.g., my 
VC doesn't live in \DevStudio), so before spending more 
time on that I'd like to know whether it's doomed.
msg7179 - (view) Author: Internet Discovery (idiscovery) Date: 2002-11-19 19:10
Logged In: YES 
user_id=33229

Look on http://tix.sourceforge.net/download.shtml for
Tix 8.1.4 RC3. It works with Tk 8.4.1 and passes the test suite,
but there are still issues with Tk 8.4 and it has not been
widely tested with yet with 8.4.1, so we still recommend 8.3.5.
(Tcl major releases often aren't stable until patch .3 or so.)

If you have any problems let me know directly by email
and I'll try and help.






msg7180 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2002-11-19 22:12
Logged In: YES 
user_id=21627

I think the recommendation cannot apply to Python; I'm very
much in favour of releasing Python 2.3 with Tk 8.4.x. 

So the question then is whether Python 2.3 should include
Tix 8.1.4 or no Tix at all, and at what time Tix 8.1.4 can
be expected.
msg7181 - (view) Author: Tim Peters (tim.peters) * (Python committer) Date: 2002-11-20 01:36
Logged In: YES 
user_id=31435

Parents shouldn't disagree in front of their children <wink>.

Not all the Tcl or Tk tests (their tests, not ours) passed 
when I built 8.4.1, but I couldn't (and can't) make time to 
dig into that, and all the Python stuff I tried worked fine.  So 
I don't fear 8.4, and am inclined to accept Martin's 
assurance that 8.4 is best for Python.

We intend to put out the first 2.3 Python alpha by the end 
of the year, and my bet is it won't be a minute before that.  
If Tix 8.1.4 is at RC3 now, I'd *guess* you'll have a final 
release out well before then.  Yes?  No?
msg7182 - (view) Author: Internet Discovery (idiscovery) Date: 2002-12-11 09:14
Logged In: YES 
user_id=33229

My you're courageous - going with a version of Tcl that doesn't
even pass its own tests :-) Been there, seen it, done it ....

8.1.4 will be out this week, which compiles with 8.4 but I don't
expect it to "support" 8.4 for a while yet (they added more problems
in 8.4.1). 8.3.5 is definitely "supported".

Check back with me before 2.3 goes into beta and I'll do
another minor release if necessary. Maybe Tk will test clean then.
msg7183 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2003-04-26 10:22
Logged In: YES 
user_id=21627

I still think Python should include Tix. Here are some 
instructions on how to make Tix 8.1.4 work:

1. Unpack as a sibling of tcl8.4.1 and tk8.4.1
2. Edit win\common.mk, to set the following variables
    TCL_VER=8.4
    INSTALLDIR=<directory to pick up installation from later>
    MKDIR=mkdir
3. Edit win\makefile.vc, to set the following variables
    TOOLS32=<directory of cl>
    TOOLS32_rc=<directory of rc.exe>
4. Edit win\tk\pkgindex.tcl, to replace
    lappend dirs ../../Dlls
    with
    lappend dirs [file join [file dirname [info nameofexe]] Dlls]
5. nmake -f makefile.vc
6. nmake -f makefile.vc install
7. Copy INSTALLDIR\bin\tix8184.dll to <python>\DLLs
8. Optionally copy tix8184.lib somewhere
9. copy INSTALLDIR\lib\tix8.1 into <python>\tcl

With these instructions, invoking t.tk.eval("package require 
Tix") succeeds. For some reason, Tix won't still find any of 
the commands; I'll investigate this later.
msg7184 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2003-06-15 12:40
Logged In: YES 
user_id=21627

I found that the instructions need slight modification: In step 
2, use tk...\mkd.bat for mkdir. Apart from that, these 
instructions work fine for me, now. I have made a binary 
release of tix8.1 for Python 2.3 at

http://www.dcl.hpi.uni-potsdam.de/home/loewis/tix8.1.zip

The tix8184.dll goes to DLLs, the tix8.1 subdirectory goes to 
tcl. It differs from the standard tix8.1 subdirectory only in 
fixing the path to the DLLs directory.

To test whether this works, execute Demo/tix/tixwidgets.py.
msg7185 - (view) Author: Aaron Optimizer Digulla (digulla) Date: 2003-07-28 13:22
Logged In: YES 
user_id=606

The Tix8184.dll is still missing in Python 2.3c2. The included 
Tix8183.dll (which is in the directory tcl\tix8.1\ along with a 
couple of other dlls -> can't be found by Python) is linked 
against Tcl/Tk 8.3.
msg7186 - (view) Author: Aaron Optimizer Digulla (digulla) Date: 2003-10-03 11:10
Logged In: YES 
user_id=606

loewis, when will your package show up in the official Python 
distribution? It's still not there in 2.3.2 :-(
msg7187 - (view) Author: Tim Peters (tim.peters) * (Python committer) Date: 2003-10-03 13:13
Logged In: YES 
user_id=31435

Unassigned (doesn't look like I'll ever get time for this).
msg7188 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2003-10-03 13:15
Logged In: YES 
user_id=21627

Reassigning to Thomas, who is doing Windows releases these days.
msg7189 - (view) Author: Jim Jewett (jimjjewett) Date: 2004-02-24 17:16
Logged In: YES 
user_id=764593

Note that the problem is still there in 2.3.3; if it can't be fixed, 
could the documentation at least mention that Tix requires 
3rd-party libraries on Windows?
msg7190 - (view) Author: Thomas Heller (theller) * (Python committer) Date: 2004-03-31 19:43
Logged In: YES 
user_id=11105

I'm willing to do some work to include tix in Python 2.3.4,
if someone can update the instructions.
msg7191 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2004-03-31 20:03
Logged In: YES 
user_id=21627

The instructions from 2003-04-26/2003-06-15 should still be
valid.

For 2.4, the story will be different, as Tix does not
currently build with VC7.
msg7192 - (view) Author: Thomas Heller (theller) * (Python committer) Date: 2004-04-01 20:16
Logged In: YES 
user_id=11105

I've built according to your instructions (slightly
adjusted), then copied tix8184.dll to the DLLs directory (of
a Python 2.3.3, installed with the windows installer), and
the tix8.1 directory into the tcl directory (sibling of
tcl8.4, tk8.4 and so on).

Demo\tixwidgets.py complains:

Traceback (most recent call last):
  File "c:\sf\python\dist23\src\Demo\tix\tixwidgets.py",
line 1002, in ?
    root = Tix.Tk()
  File "C:\Python23\lib\lib-tk\Tix.py", line 210, in __init__
    self.tk.eval('package require Tix')
_tkinter.TclError: couldn't load library "tix8184.dll": this
library or a dependent library could not be found in library
path

Any advise?
msg7193 - (view) Author: Thomas Heller (theller) * (Python committer) Date: 2004-04-02 16:48
Logged In: YES 
user_id=11105

Problem seems to be that tix8184.dll is not found, and
neither of the entries in tcl\tix8.1\pkgIndex.tcl seem to work.
Adding a line
  lappend dirs /python23/DLLs
helps when the whole stuff is installed in c:\Python23, but
this cannot be the solution.
OTOH, I don't know anything of tcl, so I cannot proceed.
msg7194 - (view) Author: Thomas Heller (theller) * (Python committer) Date: 2004-04-08 19:57
Logged In: YES 
user_id=11105

Martin, any ideas?
msg7195 - (view) Author: Martijn Pieters (mjpieters) * Date: 2004-04-16 09:08
Logged In: YES 
user_id=116747

If the tix8184 DLL cannot be found, this is most likely
because you are running a Python binary with a different
relative path than the bog-standard c:\Python23\python.exe.
For example, the Pythonwin package lives in a site-packages
subdir!

To have Tix work in Pythonwin therefor, you'll have to add
another search path to the tix8.1/pkgIndex.tcl file, one
which uses the correct relative path for the DLLs dir. I added:

  lappend dirs [file join [file dirname [info nameofexe]] ..
.. .. DLLs]

(That's one line, with three ..'s). This'll look for a DLLs
dir 3 directories above the dir of the running binary.
Voila, it now works in Pythonwin as well as in IDLE and in
standalone scripts.

Martijn
msg7196 - (view) Author: Thomas Heller (theller) * (Python committer) Date: 2004-04-16 19:27
Logged In: YES 
user_id=11105

Thanks, Martijn, that helped.
The tix-dll is in the directory c:\Python23\DLLs, and the
pkgindex.tcl is in the c:\Python23\tcl\tix8.1 directory, so
I added

lappend dirs [file join [file dirname [info nameofexe]] DLLs]

and it works.

I still wonder if it would be better to locate the dll
relative to the directory of pkgindex.tcl, but I cannot
achive this.  Better than nothing.
I'll check it in and close the bug.

(Sidenote: it seems MvL's instructions actually *were*
correct, I just missed the 'DLLs]' part which were on the
next line ;-)
msg7197 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2004-06-08 08:32
Logged In: YES 
user_id=21627

Thanks to Thomas' efforts, the problem has been eventually resolved for 
Python 2.3.4. It is not clear at this time whether Tix will also ship with 
Python 2.4, as that release will be built with Visual Studio .NET 2004; Tix 
currently does not build with that compiler.
History
Date User Action Args
2022-04-10 16:04:34adminsetgithub: 35403
2001-10-25 11:22:17anonymouscreate