At 12:36 AM 4/12/2009 -0700, Buck Golemon wrote:
On Fri, Apr 10, 2009 at 9:15 PM, P.J. Eby <<mailto:p...@telecommunity.com>p...@telecommunity.com> wrote:
At 08:53 PM 4/10/2009 -0700, Buck wrote:
I see the kernel version and architecture, but this is insufficient;
RedHat 4 and RedHat 5 both use a 2.6 kernel, but the difference in
provided libraries are sufficient to make many (most?) "impure"
libraries stop working ( numpy, python-ldap, and hashlib for
examples).

easy_install apparently knows when packages are platform-dependant,
and the necessary directory is sys.exec_prefix (or maybe better:
distutils.sysconfig.get_python_lib(plat_specific=1) ), so this seems
like an easy change. Would a patch be accepted?


It would be a pretty major patch, since the distutils logic that's used for determining the installation directory is applied long before easy_install even knows what it's installing (and therefore, whether it's platform dependent).

It would probably be a lot easier to improve the platform string generation and comparison logic, as has been done for OS X.

If the distutils logic is used, then why does numpy install to the platlib folder using distutils, but into the nonplatlib folder using easy_install?

Please read what I wrote after the word "distutils", i.e.:

"""the distutils logic that's used for determining the installation directory is applied long before easy_install even knows what it's installing"""

That is, the installation directory is determined *before* any packages are examined, so there is no way to know whether prefix or exec-prefix should be used. So prefix is used to determine the default installation location.

Currently, there's only a way to specify one installation location.


Your tone seems to suggest that such an effort might be accepted upstream.

I'm suggesting that fixing the platform strings would be more beneficial (i.e. benefit other use cases besides this one), and would probably be a LOT easier to implement as a patch, because the changes would be limited to the internals of a few well-defined, isolated functions.

Of course, if you happen to find some sane way to get easy_install to do what you want, I'll certainly take a look at it. I'm just hard pressed to imagine how you'd go about doing it without major refactoring that would be very difficult to verify was done correctly.

_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to