rbanffy/pip-chill

Relative import not working in Python3

YPCrumble opened this issue · 0 comments

Thanks for this cool library!

  • PIP Chill version: 0.1.7
  • Python version: 3.6.2
  • Operating System: Mac OSX

Description

Traceback:

Traceback (most recent call last):
  File "/usr/local/var/pyenv/versions/3.6.2/bin/pip-chill", line 7, in <module>
    from pip_chill.cli import main
  File "/usr/local/var/pyenv/versions/3.6.2/lib/python3.6/site-packages/pip_chill/__init__.py", line 3, in <module>
    from .pip_chill import chill
  File "/usr/local/var/pyenv/versions/3.6.2/lib/python3.6/site-packages/pip_chill/pip_chill.py", line 7, in <module>
    from utils import Distribution
ModuleNotFoundError: No module named 'utils'

What I Did

I get the above error when I install pip-chill and run it via the command line. I believe the issue is that I'm running Python 3 and the line from utils import Distribution is a relative import. I believe it should be from .utils import Distribution.

I think the reason it's passing the test suite is that the tox.ini file overrides the PYTHONPATH via setenv = PYTHONPATH = {toxinidir}:{toxinidir}/pip_chill. This makes utils.py available as a module, but that isn't done when you install pip-chill via pip in Python3. I'm not aware of any reason to override the PYTHONPATH - please let me know if I'm missing something!

I'll create a quick PR that I believe should fix the issue.