setuptools does not pick the right pyPEG2 tarball when listed in install_requires

Issue #25 resolved
Anonymous created an issue

Simple setup.py using setuptools:

#!/usr/bin/env python3
from setuptools import setup

setup(name='somepackage',
      version=0.1,
      author='me',
      packages=['somepackage'],
      install_requires=['pyPEG2'])

When running ./setup.py install, the following error occurs:

Processing dependencies for somepackage==0.1
Searching for pyPEG2
Reading https://pypi.python.org/simple/pyPEG2/
Reading http://fdik.org/pyPEG2
Best match: pyPEG2 2.15.0.macosx-10.10-x86-64
Downloading https://pypi.python.org/packages/any/p/pyPEG2/pyPEG2-2.15.0.macosx-10.10-x86_64.tar.gz#md5=c0020afcf7f077d13160cf76ee34debf
Processing pyPEG2-2.15.0.macosx-10.10-x86_64.tar.gz
error: Couldn't find a setup script in /tmp/easy_install-2kw7uofx/pyPEG2-2.15.0.macosx-10.10-x86_64.tar.gz

setuptools finds pyPEG2 2.15.0.macosx-10.10-x86-64 (here), which does not seem the right tarball (it should pick pyPEG2-2.15.0.tar.gz; what is this macosx thing anyway?).

This is strange since pip install pyPEG2 works fine.

I suggest that pyPEG2 2.15.0.macosx-10.10-x86-64 be deleted.

Comments (5)

  1. Florian Bruhin

    I asked in #pypa on Freenode about what's going on exactly and what they'd suggest to do:

    20:03 <The-Compiler> I'm trying to install https://pypi.python.org/pypi/pyPEG2/2.15.0 as a dependency inside setup.py (with setuptools), and for some reason it tries to pick the macosx archive and can't install it - doing "pip install pypeg2" works though. Why is that? See https://github.com/The-Compiler/qutebrowser/issues/250 for outputs.
    20:11 <dstufft> The-Compiler: the answer is kind of sad
    20:11 <dstufft> basically prior to PEP 440 a version could be *anything*
    20:11 <dstufft> A sdist takes the form of projectname-version.tar.gz
    20:11 <dstufft> a bdist_dumb takes the form of projectname-version-arch.tar.gz
    20:12 <dstufft> if you look, at the output -> Best match: pyPEG2 2.15.0.macosx-10.10-x86-64
    20:12 <dstufft> it's seeing the bdist_dumb as pyPEG2 version 2.15.0.macosx-10.10-x86-64
    20:13 <apollo13> but what is the diff between install_requires and manual install?
    20:13 <dstufft> it's not manual install vs install_requires
    20:13 <dstufft> it's pip vs setuptools
    20:14 <dstufft> pip doesn't install pre-releases by default
    20:14 <dstufft> and 2.15.0.maxosx-10.10-x86-64 looks like what pip considers a pre-release
    20:14 <The-Compiler> dstufft: so what action can/should I take (pin the version in setup.py until this is fixed?) and what action should the pyPEG2 maintainer take?
    20:15 <dstufft> delete the bdist_dumb
    20:15 <dstufft> bdist_dumb are terrible anyways
    20:16 <dstufft> they are for most purposes, completely useless
    20:16 <dstufft> they hardcode the entire path to every file starting with the root of the FS
    
  2. Log in to comment