Issue #371 resolved

launcher manifest is not installed into site-packages with easy_install

Guy Rozendorn
created an issue

because it is not included in package-data this means easy_install'ing other 0.6.37 is broken:

easy_install -U infi.projector Searching for infi.projector Reading http://pypi01.infinidat.com/simple/infi.projector/ Best match: infi.projector 0.5.13 Downloading http://pypi01.infinidat.com/media/dists/infi.projector-0.5.13-py2.7.egg#md5=a26dcaae310eb2fbc5665e4138965c55 Processing infi.projector-0.5.13-py2.7.egg removing 'c:\cygwin\home\administrator\python\lib\site-packages\infi.projector-0.5.13-py2.7.egg' (and everything under it) creating c:\cygwin\home\administrator\python\lib\site-packages\infi.projector-0.5.13-py2.7.egg Extracting infi.projector-0.5.13-py2.7.egg to c:\cygwin\home\administrator\python\lib\site-packages infi.projector 0.5.13 is already the active version in easy-install.pth Installing projector-script.py script to C:\Cygwin\home\Administrator\python\Scripts Installing projector.exe script to C:\Cygwin\home\Administrator\python\Scripts error: C:\Cygwin\home\Administrator\python\lib\site-packages\distribute-0.6.37-py2.7.egg\setuptools\command\launcher manifest.xml: No such file or directory

Comments (13)

  1. Guy Rozendorn reporter

    cloning the repository now; will push a fix shortly in the meantime, this is the diff:

    diff -r 8b339bdc7ae5 setup.py
    --- a/setup.py  Sat May 04 22:15:02 2013 -0400
    +++ b/setup.py  Sun May 05 11:12:03 2013 +0300
    @@ -170,7 +170,7 @@ dist = setup(
         test_suite = 'setuptools.tests',
         src_root = src_root,
         packages = find_packages(),
    -    package_data = {'setuptools':['*.exe']},
    +    package_data = {'setuptools':['*.exe'], 'setuptools.command':['*.xml']},
    
         py_modules = ['pkg_resources', 'easy_install', 'site'],
    
  2. Guy Rozendorn reporter

    Hi Jason,

    Your re-release is still broken: The manifest is not enough -- it just tells what to package in sdist The keyword argument 'package_data' tells setup.py what to install, and I added the xml files to it

    See my commit related to this issue; we need to release as it 0.6.38 as soon as possible

  3. Tarek Ziadé repo owner

    You should avoid deleting a release because there's no guarantee the mirrors will update the files. I encourage you to release a 0.6.38 to avoid any trouble

  4. Jason R. Coombs

    The release is done. Thanks for reporting and patching this, Guy. I've gotten so used to using 'include_package_data' and hgtools that I'd forgotten that data files need to be specified three times to work properly (once when you add it to the project, once in the MANIFEST.in to indicate that you want it distributed, and then a third time to indicate that you want it installed).

  5. Éric Araujo

    Note that starting with Python 2.7’s distutils, files in package_data don’t need to be repeated in MANIFEST.in. I don’t understand what the other repetition is (“when you add it to the project” — are you talking about VCS add?).

  6. Jason R. Coombs

    Éric Araujo I hadn't fully absorbed the idea that the MANIFEST.in is no longer required for Python 2.7+. I presume that's only the case if the files are still declared in the package_data or otherwise inferred by include_package_data. Is that right? That would explain why the file wasn't present in the sdist before adding it to MANIFEST.in, but was after (giving me the false impression that I was making the correct change).

    So to summarize, data files must be referenced in setup.py as package_data (or possibly via include_package_data if a VCS plugin can resolve package data) and should also be present in the file system during the sdist construction.

    It sounds as if the use of MANIFEST.in is no longer required for files in the package as long as the distributions are made on Python 2.7 or later. I'm tempted to enforce that requirement in the release script and obviate the need for (most of) MANIFEST.in. I'll create a ticket for that. Thanks for the tip!

  7. Log in to comment