Idle won't start

Richard James rmb25612 at yahoo.com
Sun Feb 22 15:17:56 EST 2004


David MacQuigg <shuvit at 127.0.0.1> wrote in message news:<8eh830tlh056hk21hm9v49m3qcinjv4pq9 at 4ax.com>...
> On 14 Dec 2003 10:50:29 -0800, kmneilso at yahoo.com (Kerry Neilson)
> wrote:
> This might be a different problem if your problem is truly
> intermittent, but I am finding that IDLE has conflicts with other
> installed programs.  I have been running Python 2.3 under Windows
> XP-Home with no problem for the last few months.  Yesterday I
> installed Ruby 1.8.1-11 and now IDLE won't start.  No response to
> clicking the icon, selecting the menu item,  Nada.  Removing Ruby
> restores IDLE.
> 
> With Ruby installed, when I run IDLE from a command line
> C:\Python23\Lib\idlelib>idle.py
> I get a message:
> """
> _tkinter.TclError: Cant find a usable init.tcl in the following
> directories:  <c:\ruby\tcl\lib\tcl8.3> <c:\ruby\tcl\lib\tcl8.3>
> c:/ruby/tcl/lib/tcl8.4  C:/Python23/lib/tcl8.4  C:/lib/tcl8.4
> C:/library
> This probably means that Tcl wasn't installed properly.
> """
> I have no idea why IDLE is looking for library routines in the Ruby
> subdirectories, or why all the strange variations in the search path
> above, but it is clear that Ruby and IDLE cannot co-exist on one
> computer.
> 
> Note:  Re-installing Python23 after Ruby is installed doesn't help.
> You have to remove Ruby completely.
> 
> -- Dave

The Ruby Windows Installer adds the following to your autoexec.bat
file.

--------

REM Ruby Install -- do not edit this line
set TCL_LIBRARY=c:\ruby\tcl\lib\tcl8.3
set RUBY_TCL_DLL=c:\ruby\bin\tcl83.dll
set RUBY_TK_DLL=c:\ruby\bin\tk83.dll
set PATH="c:\ruby\bin;%PATH%"
REM Ruby Install -- do not edit this line

---------

The key to the "problem" is in how TCL works. With the above
statements in your autoexec.bat file. Every time your computer boots,
the TCL_LIBRARY environment variable is set to the Ruby version.

When Python Idle runs TCL, TCL uses the TCL_LIBRARY environmental
variable to locate the "correct" version of the TCL library to use.
TCL is doing what it is designed to do. And Ruby is using a legal TCL
method to set it's path.

With that Ruby version installed, Ruby uses an old TCL version that
won't work with Python 2.3! When Ruby and Python distributions use the
same version of TCL, Idle will work fine.

I hate programs that change your autoexec.bat file "behind your back"
because of hard to understand problems just like this one.

Sometimes the uninstall doesn't work right and your autoexec.bat file
still sets TCL_LIBRARY to an old version even after Ruby is "removed".

Other third party software packages also could be setting TCL_LIBRARY
in the autoexec.bat file. I've also read that the TK_LIBRARY
environmental variable can cause problems as well.

Because of quirky TCL problems like this one, I've quit using TCL and
TK and use Gui4Cli and it's optional g4c.pyd Python dll for quick one
of a kind Python MS Windows programs. Gui4Cli is a script language
that makes native MS Windows GUI's very simple to create. You can also
use Gui4Cli to put a Windows GUI on dos command line programs or
integrate it with your C/C++ programs.

http://www.gui4cli.com

I like using the WSciTE editor from the Scintilla project.

http://www.scintilla.org/SciTE.html

You type your Python code in the editor window, Press F5, and it
displays your Python program output in a second window.
(You insert temporary print statements to "debug" your code.)

-- R.J



More information about the Python-list mailing list