[MacPorts] #42191: python27 @ 2.7.6 IDLE fails to run
#42191: python27 @ 2.7.6 IDLE fails to run ----------------------------------------+-------------------------------- Reporter: LenoreHorner@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.2.1 Keywords: missing tkinter dependency | Port: python27 ----------------------------------------+-------------------------------- OS X 10.9.1 Macports 2.2.1 Xcode 5.0.2 IDLE requires py27-tkinter {{{ /Applications/MacPorts/Python\ 2.7/IDLE.app/Contents/MacOS/IDLE ; exit; Traceback (most recent call last): File "/Applications/MacPorts/Python 2.7/IDLE.app/Contents/Resources/idlemain.py", line 71, in <module> from idlelib import macosxSupport File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/idlelib/macosxSupport.py", line 6, in <module> import Tkinter File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7 /lib-tk/Tkinter.py", line 39, in <module> import _tkinter # If this fails your Python may not be configured for Tk ImportError: No module named _tkinter logout }}} BUT py27-tkinter requires python27 {{{ port info py27-tkinter py27-tkinter @2.7.6 (python, graphics) Variants: universal Description: Python bindings to the Tk widget set Homepage: http://docs.python.org/release/2.7.6/library/tkinter.html Extract Dependencies: xz Library Dependencies: python27, tk Platforms: darwin License: PSF Maintainers: jwa@macports.org, openmaintainer@macports.org }}} I think this means IDLE needs to be split out as a separate port so that one installs python27, then py-tkinter, then IDLE -- Ticket URL: <https://trac.macports.org/ticket/42191> MacPorts <http://www.macports.org/> Ports system for OS X
#42191: python*: IDLE requires py*-tkinter -------------------------------------------------+------------------------- Reporter: LenoreHorner@… | Owner: jwa@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.2.1 Resolution: | Keywords: Port: python24 python25 python26 | python27 python31 python32 python33 python34 | -------------------------------------------------+------------------------- Changes (by larryv@…): * keywords: missing tkinter dependency => * owner: macports-tickets@… => jwa@… * port: python27 => python24 python25 python26 python27 python31 python32 python33 python34 * cc: jwa@… (removed) * cc: roel@…, mcalhoun@…, erickt@… (added) Comment: Presumably this applies to all of our Python ports. -- Ticket URL: <https://trac.macports.org/ticket/42191#comment:1> MacPorts <http://www.macports.org/> Ports system for OS X
#42191: python*: IDLE requires py*-tkinter -------------------------------------------------+------------------------- Reporter: LenoreHorner@… | Owner: jwa@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.2.1 Resolution: | Keywords: Port: python24 python25 python26 | python27 python31 python32 python33 python34 | -------------------------------------------------+------------------------- Comment (by ryandesign@…): Replying to [ticket:42191 LenoreHorner@…]:
I think this means IDLE needs to be split out as a separate port so that one installs python27, then py-tkinter, then IDLE
That sounds like a totally reasonable suggestion. Anyone know how to build IDLE separately from python? -- Ticket URL: <https://trac.macports.org/ticket/42191#comment:2> MacPorts <http://www.macports.org/> Ports system for OS X
#42191: python*: IDLE requires py*-tkinter -------------------------------------------------+------------------------- Reporter: LenoreHorner@… | Owner: jwa@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.2.1 Resolution: | Keywords: Port: python24 python25 python26 | python27 python31 python32 python33 python34 | -------------------------------------------------+------------------------- Comment (by nad@…): IDLE is included in the Python standard library under `idlelib`, so it is found in `/opt/local/Library/Frameworks/Python[...]/lib/pythonX.Y/idlelib`. It is pure Python so it is not built per se, other than the usual byte-compile optimizations during installation. There are multiple ways to invoke IDLE on OS X: 1. `python3.N -m idlelib`; 2. `/opt/local/bin/idleM.N` and aliases; and 3. launching `IDLE.app` which is a thin shell into item 1. Upstream, we don't make it easy to optionally install IDLE, or tkinter for that matter, because neither is intended to be an optional component. That said, if you really do want to make it optional, I suppose it would be better to kill two birds with one stone: you could possibly add a dummy tkinter.py (for Py3) or Tkinter.py (for Py2) that is replaced by the `pyMN-tkinter` port. Unfortunately, only raising an exception in it isn't very user friendly for people trying to launch `IDLE.app`; in that case, the output of `stderr` only ends up in `system.log` and the user has no obvious explanation why it failed (unlike with 1 and 2 where the traceback would show up in the terminal session). So, to do it right, the dummy tkinter.py should probably in addition try to create a GUI error message, perhaps using AppleScript. -- Ticket URL: <https://trac.macports.org/ticket/42191#comment:4> MacPorts <http://www.macports.org/> Ports system for OS X
participants (1)
-
MacPorts