I'm semi-new to setuptools in python. I recently added a dependency to my project and encountered an issue with the dependency. Here's the problem:
try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup
from mypackage import VERSION
setup(
    name='mypackage',
    ...
    version=VERSION,
    packages=['mypackage'],
    install_requires=['six'])
The problem is that mypackage imports six and thus setup.py fails on fresh installs (six isn't already installed) due to the from mypackage import VERSION line. I have solved the problem by hacking in a dummy module import (seen below), but I really hope there is a better way that doesn't require me to maintain the version number in two locations or a separate file.
try:
    import six
except ImportError:
    # HACK so we can import the VERSION without needing six first   
    import sys
    class HackObj(object):
        def __call__(*args):
            return HackObj()
        def __getattr__(*args):
            return HackObj()
    sys.modules['six'] = HackObj()
    sys.modules['six.moves'] = HackObj()
 
     
     
     
    