<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/wordpress-mu-1.2.5" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: pyinstall: A New Hope</title>
	<link>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/</link>
	<description>Just another  weblog</description>
	<pubDate>Mon, 22 Mar 2010 08:31:50 +0000</pubDate>
	<generator>http://wordpress.org/?v=wordpress-mu-1.2.5</generator>

	<item>
		<title>By: Jamie Kirkpatrick</title>
		<link>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/#comment-77</link>
		<dc:creator>Jamie Kirkpatrick</dc:creator>
		<pubDate>Thu, 23 Apr 2009 21:36:14 +0000</pubDate>
		<guid>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/#comment-77</guid>
		<description>Ian

Just wanted to say, you have done it again my man.  This is *exactly* what I was looking for: in combination with virtualenv, I can now bootstrap my entire build environment in one command line.  AWESOME!!!!  You saved me a ton of work.

Thanks again, I shall enjoy using this immensely...

Jamie</description>
		<content:encoded><![CDATA[<p>Ian</p>
<p>Just wanted to say, you have done it again my man.  This is *exactly* what I was looking for: in combination with virtualenv, I can now bootstrap my entire build environment in one command line.  AWESOME!!!!  You saved me a ton of work.</p>
<p>Thanks again, I shall enjoy using this immensely&#8230;</p>
<p>Jamie</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pykler</title>
		<link>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/#comment-37</link>
		<dc:creator>Pykler</dc:creator>
		<pubDate>Tue, 04 Nov 2008 05:03:51 +0000</pubDate>
		<guid>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/#comment-37</guid>
		<description>Similarly pyinstall uninstall.

I was just thinking about this the other day. I wanted to file a bug report against easy_install for going half way through my install and then telling me that a package conflicts with another egg.

Thats something else I don't undrestand, how can they conflict. They have already hacked it till no end with all these .pth files so there is no way I can import to different versions at the same time. Or maybe thats why they conflict.

Another thing I could not figure out, was how come the dependencies begin from the last item in the list working upwards, is it just to inconvenience us???

Neways back to PIP, thanks for the great package. I was not sure if it is 2.6 compatible, so I installed easy_install. Not to be a hypocrite, but as soon as I can see its py26 capable Im on.

-- 
Hatem Nassrat</description>
		<content:encoded><![CDATA[<p>Similarly pyinstall uninstall.</p>
<p>I was just thinking about this the other day. I wanted to file a bug report against easy_install for going half way through my install and then telling me that a package conflicts with another egg.</p>
<p>Thats something else I don&#8217;t undrestand, how can they conflict. They have already hacked it till no end with all these .pth files so there is no way I can import to different versions at the same time. Or maybe thats why they conflict.</p>
<p>Another thing I could not figure out, was how come the dependencies begin from the last item in the list working upwards, is it just to inconvenience us???</p>
<p>Neways back to PIP, thanks for the great package. I was not sure if it is 2.6 compatible, so I installed easy_install. Not to be a hypocrite, but as soon as I can see its py26 capable Im on.</p>
<p>&#8211;<br />
Hatem Nassrat</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jared jennings</title>
		<link>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/#comment-29</link>
		<dc:creator>jared jennings</dc:creator>
		<pubDate>Fri, 03 Oct 2008 20:58:35 +0000</pubDate>
		<guid>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/#comment-29</guid>
		<description>pyinstall remove is worse :)</description>
		<content:encoded><![CDATA[<p>pyinstall remove is worse <img src='http://www.coactivate.org/projects/topp-engineering/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ianb</title>
		<link>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/#comment-28</link>
		<dc:creator>ianb</dc:creator>
		<pubDate>Wed, 01 Oct 2008 18:45:45 +0000</pubDate>
		<guid>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/#comment-28</guid>
		<description>One problem is that pyinstall isn't really about eggs.  Technically it does install eggs, though not in the way people expect (it installs eggs as a pkg_resources concept, not as a file format).  It installs Python things, so pyinstall seemed like a very intuitive name.

There is a name problem, though, because I'm pretty sure it has to be a two-level command, like "pyinstall install Foo", "pyinstall bundle Bar", etc, but "pyinstall install" reads horribly.</description>
		<content:encoded><![CDATA[<p>One problem is that pyinstall isn&#8217;t really about eggs.  Technically it does install eggs, though not in the way people expect (it installs eggs as a pkg_resources concept, not as a file format).  It installs Python things, so pyinstall seemed like a very intuitive name.</p>
<p>There is a name problem, though, because I&#8217;m pretty sure it has to be a two-level command, like &#8220;pyinstall install Foo&#8221;, &#8220;pyinstall bundle Bar&#8221;, etc, but &#8220;pyinstall install&#8221; reads horribly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian Hawthorne</title>
		<link>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/#comment-23</link>
		<dc:creator>Brian Hawthorne</dc:creator>
		<pubDate>Fri, 26 Sep 2008 20:54:22 +0000</pubDate>
		<guid>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/#comment-23</guid>
		<description>Choice of names can have a subtle yet significant and often underrated effect on tool adoption.  Why not just call it egg, since that's what it installs.  It's three letters, easy to type and remember, all lowercase, no underscores, and you can call the internal implementation package the same thing.

I've programmed Python for a long time, but one nice thing I noticed during a brief Ruby foray is that Ruby's install tool is called gem, and it installs gems, which have the file extension ".gem".  I never had trouble remembering the name of the tool.

Then to install the installer, the package can be called python-egg, packaged as a regular tarball for normal setup.py install action, and provided as rpm, deb, etc. - instead of the unorthodox download of some ez_setup.  Consistency.  The fewer names the better!   :)</description>
		<content:encoded><![CDATA[<p>Choice of names can have a subtle yet significant and often underrated effect on tool adoption.  Why not just call it egg, since that&#8217;s what it installs.  It&#8217;s three letters, easy to type and remember, all lowercase, no underscores, and you can call the internal implementation package the same thing.</p>
<p>I&#8217;ve programmed Python for a long time, but one nice thing I noticed during a brief Ruby foray is that Ruby&#8217;s install tool is called gem, and it installs gems, which have the file extension &#8220;.gem&#8221;.  I never had trouble remembering the name of the tool.</p>
<p>Then to install the installer, the package can be called python-egg, packaged as a regular tarball for normal setup.py install action, and provided as rpm, deb, etc. - instead of the unorthodox download of some ez_setup.  Consistency.  The fewer names the better!   <img src='http://www.coactivate.org/projects/topp-engineering/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ianb</title>
		<link>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/#comment-18</link>
		<dc:creator>ianb</dc:creator>
		<pubDate>Wed, 24 Sep 2008 16:40:14 +0000</pubDate>
		<guid>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/#comment-18</guid>
		<description>The bug noted is fixed in trunk: https://svn.openplans.org/svn/pyinstall/trunk/pyinstall.py -- I had simply never tried it from outside a virtualenv environment, so I wasn't seeing that problem.

Re: uninstallation, sure, at some point.  Each package has a record of installed files, so it's fairly easy.

I haven't figured out how to do interactive stuff.  I guess I just need a --no-interactive option or something.  People will often want to drive this from scripts, so interactive things (like warning about global installation) is likely to be problematic.  (There already is at least one prompt, though.)

David: this installs packages as eggs, bug as flat (not multi-version) eggs, so sys.path doesn't get larger.  This was a feature already in setuptools, setup.py install --single-version-externally-managed.

Noah: requirement files, when written sufficiently strictly, guarantee you get what you wanted.  You can stuff those files into version control too (which I wouldn't advise for the big pybundle zip files).  So there's actually kind of two solutions to that problem in pyinstall.</description>
		<content:encoded><![CDATA[<p>The bug noted is fixed in trunk: <a href="https://svn.openplans.org/svn/pyinstall/trunk/pyinstall.py" rel="nofollow">https://svn.openplans.org/svn/pyinstall/trunk/pyinstall.py</a> &#8212; I had simply never tried it from outside a virtualenv environment, so I wasn&#8217;t seeing that problem.</p>
<p>Re: uninstallation, sure, at some point.  Each package has a record of installed files, so it&#8217;s fairly easy.</p>
<p>I haven&#8217;t figured out how to do interactive stuff.  I guess I just need a &#8211;no-interactive option or something.  People will often want to drive this from scripts, so interactive things (like warning about global installation) is likely to be problematic.  (There already is at least one prompt, though.)</p>
<p>David: this installs packages as eggs, bug as flat (not multi-version) eggs, so sys.path doesn&#8217;t get larger.  This was a feature already in setuptools, setup.py install &#8211;single-version-externally-managed.</p>
<p>Noah: requirement files, when written sufficiently strictly, guarantee you get what you wanted.  You can stuff those files into version control too (which I wouldn&#8217;t advise for the big pybundle zip files).  So there&#8217;s actually kind of two solutions to that problem in pyinstall.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rob</title>
		<link>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/#comment-17</link>
		<dc:creator>Rob</dc:creator>
		<pubDate>Wed, 24 Sep 2008 15:24:12 +0000</pubDate>
		<guid>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/#comment-17</guid>
		<description>How about checksums?</description>
		<content:encoded><![CDATA[<p>How about checksums?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Noah Gift</title>
		<link>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/#comment-16</link>
		<dc:creator>Noah Gift</dc:creator>
		<pubDate>Wed, 24 Sep 2008 14:27:57 +0000</pubDate>
		<guid>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/#comment-16</guid>
		<description>I agree, having all of the source code already packed into an install is HUGE!  This is my one complaint about dependency based installations is that it is almost impossible to guarantee what is happening upstream is what you intended.  Things change, there are network problems, etc, but if the source is located in one directory with the installer, then problem is solved at least for that specific version.</description>
		<content:encoded><![CDATA[<p>I agree, having all of the source code already packed into an install is HUGE!  This is my one complaint about dependency based installations is that it is almost impossible to guarantee what is happening upstream is what you intended.  Things change, there are network problems, etc, but if the source is located in one directory with the installer, then problem is solved at least for that specific version.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fábio Corrêa</title>
		<link>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/#comment-15</link>
		<dc:creator>Fábio Corrêa</dc:creator>
		<pubDate>Wed, 24 Sep 2008 14:20:40 +0000</pubDate>
		<guid>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/#comment-15</guid>
		<description>The fix for the traceback above is:

$ /Library/Python/2.5/site-packages/pyinstall-0.1-py2.5.egg/EGG-INFO/scripts$ ls -l
total 184
-rwxr-xr-x  1 feamcor  admin  91001 Sep 24 16:18 pyinstall.py

Edit the file pyinstall.py and merge the fix below:

if getattr(sys, 'real_prefix', None):
    ## FIXME: is build/ a good name?
    base_prefix = os.path.join(sys.prefix, 'build')
    base_src_prefix = os.path.join(sys.prefix, 'src')
else:
    ## FIXME: this isn't a very good default
    base_prefix = os.path.join(os.getcwd(), 'build')
    # FEAMCOR - wrong variable is being used here. Script fails to init on Mac OS X
    #base_prefix = os.path.join(os.getcwd(), 'src')
    base_src_prefix = os.path.join(os.getcwd(), 'src')</description>
		<content:encoded><![CDATA[<p>The fix for the traceback above is:</p>
<p>$ /Library/Python/2.5/site-packages/pyinstall-0.1-py2.5.egg/EGG-INFO/scripts$ ls -l<br />
total 184<br />
-rwxr-xr-x  1 feamcor  admin  91001 Sep 24 16:18 pyinstall.py</p>
<p>Edit the file pyinstall.py and merge the fix below:</p>
<p>if getattr(sys, &#8216;real_prefix&#8217;, None):<br />
    ## FIXME: is build/ a good name?<br />
    base_prefix = os.path.join(sys.prefix, &#8216;build&#8217;)<br />
    base_src_prefix = os.path.join(sys.prefix, &#8217;src&#8217;)<br />
else:<br />
    ## FIXME: this isn&#8217;t a very good default<br />
    base_prefix = os.path.join(os.getcwd(), &#8216;build&#8217;)<br />
    # FEAMCOR - wrong variable is being used here. Script fails to init on Mac OS X<br />
    #base_prefix = os.path.join(os.getcwd(), &#8217;src&#8217;)<br />
    base_src_prefix = os.path.join(os.getcwd(), &#8217;src&#8217;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David</title>
		<link>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/#comment-13</link>
		<dc:creator>David</dc:creator>
		<pubDate>Wed, 24 Sep 2008 11:57:13 +0000</pubDate>
		<guid>http://www.coactivate.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/#comment-13</guid>
		<description>Does it solve the old "eggs get added to my Python PATH when installing with easy_install"? I remember that was a *major* grudge people used to cite when bad-mouthing easy_install. Actually, that might have been the *only* grudge for all I know.

Anyway, I loved the bundle idea!</description>
		<content:encoded><![CDATA[<p>Does it solve the old &#8220;eggs get added to my Python PATH when installing with easy_install&#8221;? I remember that was a *major* grudge people used to cite when bad-mouthing easy_install. Actually, that might have been the *only* grudge for all I know.</p>
<p>Anyway, I loved the bundle idea!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
