pypa / setuptools

Official project repository for the Setuptools build system

Home Page:https://pypi.org/project/setuptools/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

no module 'six' when specifying minimum setuptools requirement.

opened this issue · comments

When using setup_requires to specify a minimum setuptools, I received the following:

Obtaining file:///home/travis/build/lord63/py-spin
    Traceback (most recent call last):
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/sandbox.py", line 150, in save_modules
        yield saved
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/sandbox.py", line 190, in setup_context
        __import__('setuptools')
      File "/tmp/easy_install-jgtte7ad/setuptools-34.3.2/setuptools/__init__.py", line 10, in <module>
    ImportError: No module named 'six'
    During handling of the above exception, another exception occurred:
    Traceback (most recent call last):
      File "<string>", line 20, in <module>
      File "/home/travis/build/lord63/py-spin/setup.py", line 50, in <module>
        'futures; python_version < "3.2"',
      File "/opt/python/3.4.2/lib/python3.4/distutils/core.py", line 108, in setup
        _setup_distribution = dist = klass(attrs)
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/dist.py", line 265, in __init__
        self.fetch_build_eggs(attrs['setup_requires'])
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/dist.py", line 311, in fetch_build_eggs
        replace_conflicting=True,
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/pkg_resources/__init__.py", line 797, in resolve
        dist = best[req.key] = env.best_match(req, ws, installer)
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/pkg_resources/__init__.py", line 1047, in best_match
        return self.obtain(req, installer)
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/pkg_resources/__init__.py", line 1059, in obtain
        return installer(requirement)
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/dist.py", line 378, in fetch_build_egg
        return cmd.easy_install(req)
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/command/easy_install.py", line 623, in easy_install
        return self.install_item(spec, dist.location, tmpdir, deps)
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/command/easy_install.py", line 653, in install_item
        dists = self.install_eggs(spec, download, tmpdir)
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/command/easy_install.py", line 838, in install_eggs
        return self.build_and_install(setup_script, setup_base)
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/command/easy_install.py", line 1066, in build_and_install
        self.run_setup(setup_script, setup_base, args)
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/command/easy_install.py", line 1052, in run_setup
        run_setup(setup_script, args)
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/sandbox.py", line 225, in run_setup
        with setup_context(setup_dir):
      File "/opt/python/3.4.2/lib/python3.4/contextlib.py", line 59, in __enter__
        return next(self.gen)
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/sandbox.py", line 191, in setup_context
        yield
      File "/opt/python/3.4.2/lib/python3.4/contextlib.py", line 77, in __exit__
        self.gen.throw(type, value, traceback)
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/sandbox.py", line 162, in save_modules
        saved_exc.resume()
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/sandbox.py", line 137, in resume
        compat.reraise(type, exc, self._tb)
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/compat.py", line 65, in reraise
        raise value.with_traceback(tb)
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/sandbox.py", line 150, in save_modules
        yield saved
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/sandbox.py", line 190, in setup_context
        __import__('setuptools')
      File "/tmp/easy_install-jgtte7ad/setuptools-34.3.2/setuptools/__init__.py", line 10, in <module>
    ImportError: No module named 'six'
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
    
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/sandbox.py", line 150, in save_modules
    
        yield saved
    
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/sandbox.py", line 190, in setup_context
    
        __import__('setuptools')
    
      File "/tmp/easy_install-jgtte7ad/setuptools-34.3.2/setuptools/__init__.py", line 10, in <module>
    
    ImportError: No module named 'six'
    
    
    
    During handling of the above exception, another exception occurred:
    
    
    
    Traceback (most recent call last):
    
      File "<string>", line 20, in <module>
    
      File "/home/travis/build/lord63/py-spin/setup.py", line 50, in <module>
    
        'futures; python_version < "3.2"',
    
      File "/opt/python/3.4.2/lib/python3.4/distutils/core.py", line 108, in setup
    
        _setup_distribution = dist = klass(attrs)
    
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/dist.py", line 265, in __init__
    
        self.fetch_build_eggs(attrs['setup_requires'])
    
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/dist.py", line 311, in fetch_build_eggs
    
        replace_conflicting=True,
    
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/pkg_resources/__init__.py", line 797, in resolve
    
        dist = best[req.key] = env.best_match(req, ws, installer)
    
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/pkg_resources/__init__.py", line 1047, in best_match
    
        return self.obtain(req, installer)
    
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/pkg_resources/__init__.py", line 1059, in obtain
    
        return installer(requirement)
    
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/dist.py", line 378, in fetch_build_egg
    
        return cmd.easy_install(req)
    
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/command/easy_install.py", line 623, in easy_install
    
        return self.install_item(spec, dist.location, tmpdir, deps)
    
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/command/easy_install.py", line 653, in install_item
    
        dists = self.install_eggs(spec, download, tmpdir)
    
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/command/easy_install.py", line 838, in install_eggs
    
        return self.build_and_install(setup_script, setup_base)
    
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/command/easy_install.py", line 1066, in build_and_install
    
        self.run_setup(setup_script, setup_base, args)
    
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/command/easy_install.py", line 1052, in run_setup
    
        run_setup(setup_script, args)
    
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/sandbox.py", line 225, in run_setup
    
        with setup_context(setup_dir):
    
      File "/opt/python/3.4.2/lib/python3.4/contextlib.py", line 59, in __enter__
    
        return next(self.gen)
    
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/sandbox.py", line 191, in setup_context
    
        yield
    
      File "/opt/python/3.4.2/lib/python3.4/contextlib.py", line 77, in __exit__
    
        self.gen.throw(type, value, traceback)
    
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/sandbox.py", line 162, in save_modules
    
        saved_exc.resume()
    
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/sandbox.py", line 137, in resume
    
        compat.reraise(type, exc, self._tb)
    
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/compat.py", line 65, in reraise
    
        raise value.with_traceback(tb)
    
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/sandbox.py", line 150, in save_modules
    
        yield saved
    
      File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/sandbox.py", line 190, in setup_context
    
        __import__('setuptools')
    
      File "/tmp/easy_install-jgtte7ad/setuptools-34.3.2/setuptools/__init__.py", line 10, in <module>
    
    ImportError: No module named 'six'

setup.py is the following:

#!/usr/bin/env python
#  -*- coding: utf-8 -*-

import sys

from setuptools import setup

import pyspin


try:
    import pypandoc
    long_description = pypandoc.convert('README.md', 'rst')
except (IOError, ImportError):
    with open('README.md') as f:
        long_description = f.read()


setup(
    name='pyspin',
    version=pyspin.__version__,
    description='Little terminal spinner lib.',
    long_description=long_description,
    url='http://github.com/lord63/py-spin',
    author='lord63',
    author_email='lord63.j@gmail.com',
    license='MIT',
    classifiers=[
        'Development Status :: 4 - Beta',
        'Intended Audience :: Developers',
        'Operating System :: POSIX',
        'Operating System :: POSIX :: Linux',
        'License :: OSI Approved :: MIT License',
        'Programming Language :: Python :: 2',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.3',
        'Programming Language :: Python :: 3.4',
        'Programming Language :: Python :: 3.5',
        'Programming Language :: Python :: 3.6',
    ],
    keywords='terminal spin spinner',
    packages=['pyspin'],
    include_package_data=True,
    setup_requires=[
        'six',
        'setuptools >= 20.8.1',
    ],
    install_requires=[
        'futures; python_version < "3.2"',
    ],
)

You can't use setup_requires to indicate setuptools, in part because setup_requires setuptools but also because setuptools 34 dropped support for self-installation using easy_install.

So I guess it's not possible to indicate that you need a newer setuptools installed?

@xoviat: At this time, no, but PEP 518 describes a spec that will, and pip is including support for PEP 518 in an upcoming release.