Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

create venv raises TypeError if PYENV_ROOT is set #3274

Closed
mndavidoff opened this issue Nov 21, 2018 · 2 comments
Closed

create venv raises TypeError if PYENV_ROOT is set #3274

mndavidoff opened this issue Nov 21, 2018 · 2 comments

Comments

@mndavidoff
Copy link

Issue description

Creating a virtual environment raises TypeError if the PYENV_ROOT environment variable is set.

Actual result

$ export PYENV_ROOT=~/.pyenv
$ pipenv --three
Traceback (most recent call last):
  File "/home/mdavidoff/.pyenv/versions/3.7.1/bin/pipenv", line 11, in <module>
    sys.exit(cli())
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 1114, in invoke
    return Command.invoke(self, ctx)
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/click/decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/cli/command.py", line 203, in cli
    clear=state.clear,
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/core.py", line 569, in ensure_project
    pypi_mirror=pypi_mirror,
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/core.py", line 489, in ensure_virtualenv
    python = ensure_python(three=three, python=python)
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/core.py", line 397, in ensure_python
    path_to_python = find_a_system_python(python)
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/core.py", line 360, in find_a_system_python
    python_entry = finder.find_python_version(line)
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/pythonfinder.py", line 113, in find_python_version
    return self.system_path.find_python_version(
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/pythonfinder.py", line 54, in system_path
    ignore_unsupported=self.ignore_unsupported,
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 451, in create
    ignore_unsupported=ignore_unsupported,
  File "<attrs generated init 75e45f144e3d5510d54dd5fca6730b98fa0220a9>", line 38, in __init__
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 116, in __attrs_post_init__
    self._setup_pyenv()
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 196, in _setup_pyenv
    version_glob_path="versions/*", ignore_unsupported=self.ignore_unsupported
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/python.py", line 154, in create
    sort_function=sort_function, version_glob_path=version_glob_path)
  File "<attrs generated init 70e7caa08623cefd387bb53355fd897fab63b913>", line 17, in __init__
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/python.py", line 98, in get_versions
    for p in self.get_version_order():
  File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/python.py", line 70, in get_version_order
    version_order = [versions[v] for v in parse_pyenv_version_order()]
TypeError: 'NoneType' object is not iterable

If the PYENV_ROOT environment variable is not set, the virtual environment is created without error.

I installed pipenv using pip install pipenv.

This problem occurred in pipenv 2018.11.14; pipenv 2018.10.13 didn't have this problem.

See sarugaku/pythonfinder#48.


PYENV_ROOT not set:

$ pipenv --support

Pipenv version: '2018.11.14'

Pipenv location: '/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv'

Python location: '/home/mdavidoff/.pyenv/versions/3.7.1/bin/python3.7'

Python installations found:

  • 3.7.1: /home/mdavidoff/.pyenv/versions/3.7.1/bin/python3.7m
  • 3.7.1: /home/mdavidoff/.pyenv/versions/3.7.1/bin/python3.7
  • 3.5.2: /usr/bin/python3
  • 3.5.2: /usr/bin/python3.5m
  • 2.7.12: /usr/bin/python2

PEP 508 Information:

{'implementation_name': 'cpython',
 'implementation_version': '3.7.1',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '4.15.0-30-generic',
 'platform_system': 'Linux',
 'platform_version': '#32~16.04.1-Ubuntu SMP Thu Jul 26 20:25:39 UTC 2018',
 'python_full_version': '3.7.1',
 'python_version': '3.7',
 'sys_platform': 'linux'}

System environment variables:

  • MANPATH
  • XDG_SESSION_ID
  • TERM
  • SHELL
  • PIPENV_VENV_IN_PROJECT
  • SSH_CLIENT
  • OLDPWD
  • SSH_TTY
  • USER
  • VIMINIT
  • SSH_AUTH_SOCK
  • MAIL
  • PATH
  • QT_QPA_PLATFORMTHEME
  • PWD
  • LANG
  • SHLVL
  • HOME
  • BASH_ENV
  • LESS
  • LOGNAME
  • VISUAL
  • XDG_DATA_DIRS
  • SSH_CONNECTION
  • XDG_RUNTIME_DIR
  • _
  • PIP_DISABLE_PIP_VERSION_CHECK
  • PYTHONDONTWRITEBYTECODE
  • PIP_SHIMS_BASE_MODULE
  • PIP_PYTHON_PATH
  • PYTHONFINDER_IGNORE_UNSUPPORTED

Pipenv–specific environment variables:

  • PIPENV_VENV_IN_PROJECT: true

Debug–specific environment variables:

  • PATH: /home/mdavidoff/.pyenv/versions/3.7.1/bin:/home/mdavidoff/.pyenv/bin:/usr/bin:/bin
  • SHELL: /usr/local/bin/bash
  • LANG: en_US.UTF-8
  • PWD: /home/mdavidoff/test

PYENV_ROOT set:

$ pipenv --support

Pipenv version: '2018.11.14'

Pipenv location: '/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv'

Python location: '/home/mdavidoff/.pyenv/versions/3.7.1/bin/python3.7'

Python installations found:

Traceback (most recent call last):
File "/home/mdavidoff/.pyenv/versions/3.7.1/bin/pipenv", line 11, in
sys.exit(cli())
File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 764, in call
return self.main(*args, **kwargs)
File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 1114, in invoke
return Command.invoke(self, ctx)
File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/click/decorators.py", line 64, in new_func
return ctx.invoke(f, obj, *args, **kwargs)
File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/click/decorators.py", line 17, in new_func
return f(get_current_context(), args, **kwargs)
File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/cli/command.py", line 142, in cli
get_pipenv_diagnostics()
File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/help.py", line 33, in get_pipenv_diagnostics
python_paths = finder.find_all_python_versions()
File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/pythonfinder.py", line 122, in find_all_python_versions
python_version_dict = getattr(self.system_path, "python_version_dict")
File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/pythonfinder.py", line 54, in system_path
ignore_unsupported=self.ignore_unsupported,
File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 451, in create
ignore_unsupported=ignore_unsupported,
File "<attrs generated init 75e45f144e3d5510d54dd5fca6730b98fa0220a9>", line 38, in init
File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 116, in attrs_post_init
self._setup_pyenv()
File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 196, in _setup_pyenv
version_glob_path="versions/
", ignore_unsupported=self.ignore_unsupported
File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/python.py", line 154, in create
sort_function=sort_function, version_glob_path=version_glob_path)
File "", line 17, in init
File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/python.py", line 98, in get_versions
for p in self.get_version_order():
File "/home/mdavidoff/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/python.py", line 70, in get_version_order
version_order = [versions[v] for v in parse_pyenv_version_order()]
TypeError: 'NoneType' object is not iterable

@duplicate-issues
Copy link

Hey @mndavidoff,

We did a quick check and this issue looks very darn similar to

This could be a coincidence, but if any of these issues solves your problem then I did a good job 😄

If not, the maintainers will get to this issue shortly.

Cheers,
Your Friendly Neighborhood ProBot

@thedrow
Copy link
Contributor

thedrow commented Nov 21, 2018

This is already fixed upstream. We should update the code as soon as possible.
See sarugaku/pythonfinder#48 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants