fishcode — 2014-01-09T19:22:18-05:00 — #1
On the python.org website it says that python3 has issues with the tcl/tk framework supplied with the operating system (I am running OS X 10.8). The following is taken from the python.org website http://www.python.org/getit/mac/tcltk/:
If you are using Python from a python.org 64-bit/32-bit Python installer for Mac OS X 10.6 and later, you should only use IDLE or tkinter with an updated third-party Tcl/Tk 8.5, like ActiveTcl 8.5 installed.[/I]
From the same page further down where it describes the installation process:
In either case, the dynamically linking occurs when tkinter (Python 3) or Tkinter (Python 2) is first imported (specifically, the internal _tkinter C extension module). By default, the Mac OS X dynamic linker looks first in /Library/Frameworks for Tcl and Tk frameworks with the proper major version. This is the standard location for third-party or built from source frameworks, including the ActiveTcl releases. If frameworks of the proper major version are not found there, the dynamic linker looks for the same version in /System/Library/Frameworks, the location for Apple-supplied frameworks shipped with Mac OS X. (Note, you should normally not modify or delete files in /System/Library.)
Warning at the download link here http://www.python.org/download/releases/3.3.3/:
Mac OS X 64-bit/32-bit Installer (3.3.3) for Mac OS X 10.6 and later 2. [You may need an updated Tcl/Tk install to run IDLE or use Tkinter, see note 2 for instructions.]
I have downloaded the ActiveTcl 126.96.36.199 and followed the installation instructions, however, IDLE still warns me that it is using version 8.5.9 which is the one that causes the errors/bugs. I looked in the two locations the description says the frameworks should be. The Library/Frameworks/... location has the updated and proper version BUT the /System/Library/Frameworks does NOT and it seems that is where IDLE is looking for the current framework. The installation description says "you should normall not modify or delete files in /System/Library" but that is where the python is pulling the tcl/tk framework from and it is the older version that causes bugs.
I am trying to learn python, but this certainly puts a damper on things because I am running an unstable framework for the tcl/tk side of things. I was wondering if I could simply copy the files over to the /System/Library... location and change the "Current" link to the newer folder. Is there anything wrong with this idea? Or does anyone have another idea?
kiwiheretic — 2014-02-08T15:33:53-05:00 — #2
Unless you are developing desktop Gui applications I don't know why you need tcl/tk and I prefer wxpython for that anyway.
Rather than trying to replace system libraries is virtualenv an option?
hall_of_famer — 2014-02-09T03:43:45-05:00 — #3
umm this is a weird situation. The question is, how likely is the issue gonna be fixed and how long will it take? If you are just learning python theres a good chance that it wont affect you in any way, most likely things will get fixed the time you complete your training sessions. If you are working on a project, especially a complex one, you will have to consider it thoroughly. Only you know what you truly need.
xangis — 2014-06-05T01:22:49-04:00 — #4
I second the virtualenv suggestion - that lets you use any version of packages independent of what's installed system-wide.
But one bit of advice:
NEVER copy things about where /System/Library or really /System/anything is involved. I've broken my OSX more than once and had to reinstall. Be afraid. Be very afraid.
Also worth checking out pyQt, very similar to wxPython. They both do what you can do with Tk, but are more feature-rich.