title: Python subprocess fails, depending on how IDLE is opened
body: <p>On a MacBook Pro with Mac OS X version 10.6.7, I have a simple python script 'test.py':</p>
  
  <pre><code>import subprocess
  subprocess.Popen(['xterm'])
  </code></pre>
  
  <p>If I run this script by opening it in IDLE using the mouse, it crashes. If I run the same script in an IDLE that I launch by typing 'idle' in a terminal, it doesn't crash. What's going on?</p>
  
  <p>Details: </p>
  
  <p>Launch IDLE by right clicking test.py and "open with" IDLE (2.6.6).  It only opens the Python Shell and IDLE, not test.py.  I open test.py and select "run module" from the "Run" menu.  Pasted below is the contents from the Python Shell.  Included at the bottom is the sys.path for IDLE opened in this manner.</p>
  
  <pre><code>Python 2.6.6 (r266:84292, May 11 2011, 21:44:06) 
  [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
  Type "copyright", "credits" or "license()" for more information.
  
      ****************************************************************
      Personal firewall software may warn about the connection IDLE
      makes to its subprocess using this computer's internal loopback
      interface.  This connection is not visible on any external
      interface and no data is sent to or received from the Internet.
      ****************************************************************
  
  IDLE 2.6.6      
  &gt;&gt;&gt; ================================ RESTART ================================
  &gt;&gt;&gt; 
  
  Traceback (most recent call last):
    File "/Users/georgepatterson/test.py", line 2, in &lt;module&gt;
      subprocess.Popen(['xterm'])
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py", line 623, in __init__
      errread, errwrite)
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py", line 1141, in _execute_child
      raise child_exception
  OSError: [Errno 2] No such file or directory
  
  &gt;&gt;&gt; import sys
  &gt;&gt;&gt; for p in sys.path: print p
  
  /Users/georgepatterson
  /Users/georgepatterson/Documents
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PyObjC
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info
  &gt;&gt;&gt; 
  </code></pre>
  
  <p>Launch IDLE through a terminal window. Open test.py and select "run module" from the "Run" menu. When run in this manner, the terminal window is opened properly. I've pasted the contents of the Python Shell below with the sys.path also. </p>
  
  <pre><code>Python 2.6.6 (r266:84292, May 11 2011, 21:44:06) 
  [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
  Type "copyright", "credits" or "license()" for more information.
  
      ****************************************************************
      Personal firewall software may warn about the connection IDLE
      makes to its subprocess using this computer's internal loopback
      interface.  This connection is not visible on any external
      interface and no data is sent to or received from the Internet.
      ****************************************************************
  
  IDLE 2.6.6      
  &gt;&gt;&gt; ================================ RESTART ================================
  &gt;&gt;&gt; 
  &gt;&gt;&gt; import sys
  &gt;&gt;&gt; for p in sys.path: print p
  
  /Users/georgepatterson
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PyObjC
  /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info
  &gt;&gt;&gt;
  </code></pre>