[Distutils] zc.buildout and zc.recipe.egg

Jim Fulton jim at zope.com
Thu Jul 19 23:55:51 CEST 2007


Much thanks.  Can you also supply a test? Better yet, since you are a  
zope contributor, you could just check in the change, including the  
test.

Jim

On Jul 19, 2007, at 5:21 PM, Miles wrote:

> Hi,
>
>> That's correct.  This is a limitation in zc.recipe.egg; we're open  
>> to patches that improve the generated interpreter script.
>
> Thanks for confirming, I wasn't sure if it was like that for a reason.
>
> I attach a patch that fixes up some other parameters so the  
> generated interpreter script's behaviour is less distinguis matches  
> what you get when you start the python interpreter more exactly.   
> Works for me, but I'd appreciate some more eyes...
>
> Miles
>
> Index: zc.buildout/src/zc/buildout/easy_install.py
> ===================================================================
> --- zc.buildout/src/zc/buildout/easy_install.py	(revision 78190)
> +++ zc.buildout/src/zc/buildout/easy_install.py	(working copy)
> @@ -896,11 +896,17 @@
>  py_script_template = '''\
>  #!%(python)s
>  import sys
> -
> +import os
> +
>  sys.path[0:0] = [
> +  '',
>    %(path)s,
>    ]
>
> +abs__file__ = os.path.abspath( __file__ )
> +sys.executable = abs__file__
> +del ( __file__ )
> +
>  _interactive = True
>  if len(sys.argv) > 1:
>      import getopt
> @@ -914,7 +920,12 @@
>
>      if _args:
>          sys.argv[:] = _args
> -        execfile(sys.argv[0])
> +        f = sys.argv[0]
> +        absf = os.path.abspath(f)
> +        p = os.path.split( absf )[0]
> +        sys.path[0] = os.path.join( p )
> +        __file__ = absf
> +        execfile( f )
>
>  if _interactive:
>      import code
> _______________________________________________
> Distutils-SIG maillist  -  Distutils-SIG at python.org
> http://mail.python.org/mailman/listinfo/distutils-sig

--
Jim Fulton			mailto:jim at zope.com		Python Powered!
CTO 				(540) 361-1714			http://www.python.org
Zope Corporation	http://www.zope.com		http://www.zope.org





More information about the Distutils-SIG mailing list