On 5 September 2013 13:34, Daniel Holth <[email protected]> wrote: > On Thu, Sep 5, 2013 at 5:36 AM, Oscar Benjamin > <[email protected]> wrote: > > --single-version-externally-managed just means "install everything > into a flat site-packages" rather than installing them into their own > (egg) directories.
Does that mean that the option could be safely ignored by distutils? Obviously if X has a vanilla distutils setup.py then this is what 'python setup.py install' would do anyway. Or is it possible that X could be installed as a dependency of Y that uses setuptools in such a way that this option wouldn't get passed to X's setup.py install command? In that case presumably pip would expect the 'setup.py install' command to do something different. > If you would like to advance the state of the art of distutils you > should consider implementing a dist-info command that builds a > dist-info directory instead of an egg-info directory [it's possible > pip will recognize this automatically if it uses pkg_resources to > inspect the dependencies]. Pip only checks for the '.egg-info' extension so it won't pick up any PEP 376 metadata files: https://github.com/pypa/pip/blob/develop/pip/req.py#L646 > You could also try for a bdist_wheel > feature -- Vinay's distil has shown how this can be done with the > install command by passing --install-platlib=x etc. as per the wheel > layout, by converting egg-info to dist-info, by adding a manifest, and > zipping the result. I was really just trying to identify what is the minimum required to work right now. Does pip or anything else ever use bdist_wheel during installation from sdist? > In setuptools you can just write the new command plugins once as an > add-on package and have them available in every sdist. > > You might also look into supporting installs by an installer without > running the hated setup.py install command. The installer could always > generate an intermediate wheel, or it could avoid some of the (usually > very fast) copying by defining and generating a manifest of category > -> [{source path : destination path relative to the scheme}, ...] as > in "purelib" : [ { "src/__init__.py" -> "__init__.py'"}, ...]; the > installer would be able to interpret the manifest in much the same way > as a wheel package. Apart from uploading wheels to PyPI how can you support installation with pip without 'python setup.py install' (or 'python setup.py bdist_egg' for easy_install)? Oscar _______________________________________________ Distutils-SIG maillist - [email protected] https://mail.python.org/mailman/listinfo/distutils-sig
