help! - Python, Tkinter and IDLE

Ryan Schmidt ryandesign at macports.org
Fri Apr 4 03:45:00 PDT 2014


On Apr 4, 2014, at 05:17, ugajin at talktalk.net wrote:

> This is a follow up, I had originally posted in regard to problems running the Tkinter libraries on a Macports installed version of Python. As a short term solution I reverted back to the OSX Python version, and I am now in the merde. 
> 
> Recently Ryan, wrote:
> 
> "Software installed in /usr/local or /Library/Frameworks often causes problems for MacPorts-installed software. You should use MacPorts, or manually-installed software in those locations, not both together; to avoid problems, please uninstall the one you don’t want to use."
> 
> This is a bit unclear as there are several Library locations, and because Python on OSX v10.6.8 is located here: /System/Library/Frameworks/Python.framework/Versions/. . .

I don’t doubt that, and there’s nothing wrong with that.

> and I have nothing in /usr/local. In addition, the Macports Python installed here: /opt/local/Library/Frameworks/Python.framework/Versions/. . .

I’m not disputing that.

Re-read what I wrote. Software installed in the locations /usr/local or /Library/Frameworks is a problem. And you told us you installed Tcl and Tk in /Library/Frameworks. So that could be a problem.


> I almost spoke to soon, when I was about to say: 'I am able to run either versions quite happily, and do not run the two versions at the same time'. I can continue to run either Python version happily but with a few exceptions. I still can't run IDLE with the macports version of Python (I have not yet ported Tcl/tk), but it did run with the OSX python version, until now that is. 

The problem is not running them at the same time. The problem is that the existence of software in /usr/local or /Library/Frameworks could be detected by software you’re trying to build with MacPorts, thereby either causing the build to fail, or causing the build to use those libraries instead of the MacPorts versions of same that should have been used.


> Thinking about your advice, I pondered whether this is the cause of a problem that I am now experiencing, and I looked at un-installing the macports version, but I have been unable to proceed with this. I am unable to uninstall python27 @2.7.6_0 primarily because I want to retain Fontforge which depends on it. I guess I could try uninstalling Fontforge and dependencies, but this would leave me without Fontforge and it may not resolve the current IDLE issue for OSX Python. Another, possible solution is to port Tcl/Tk and re-activate the port Python as default, but I am not confident this will not also inherit the current problem that I am experiencing with IDLE, and I would like to resolve this issue in the first instance.

My advice refers to the collection of software as a whole. Either use software installed by MacPorts (and uninstall software installed in /usr/local or /Library/Frameworks), or use software installed in /usr/local or /Library/Frameworks (and uninstall MacPorts and all software installed with it). Mixing and matching will lead to problems.


> I have attached a screen grab of the alert message which now appears when I try to run IDLE from OSX Python. The message box is itself frozen, and the OK button unresponsive. Eventually a shape the size of the IDLE window appears on screen as a blank white square, and I have to force quit, to quit the python launcher. 
> In addition, this is the console message that appears in Terminal:
> Apples-iMac-4:scripts apple$ IDLE
> 11:20:00
> Traceback (most recent call last):
>   File "<string>", line 1, in <module>
>   File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/idlelib/run.py", line 7, in <module>
>     import threading
>   File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/threading.py", line 14, in <module>
>     from time import time as _time, sleep as _sleep
> ImportError: cannot import name sleep

What is this command “IDLE”? What does “which IDLE” say?

“IDLE” is not installed by the python27 port. The python27 port installs “idle2.7”. Please try running “idle2.7”.


> The console message has identical content to a message that I am also currently investigating, and which had caused me to try to launch IDLE at this time. This problem relates to running Python scripts that have import commands to a particular 3rd party library, which were working, but now no longer work without generating the same console message. Other scripts seem to run OK on both OSX Python and the macported Python. I would say the problem is with the 3rd party library save that IDLE is not related to that library.
> 
> This may or may not be a macport issue, but as you say, having both macported and OSX versions of Python may be causing a conflict. Please explain how I may follow your initial advise on removing manually-installed software it may help.

There is no problem having both MacPorts and Apple-provided versions of anything installed. MacPorts is designed to work software Apple provides. MacPorts is not designed to work with random third-party libraries or frameworks in /usr/local or /Library/Frameworks.





More information about the macports-users mailing list