Pipenv: NameError: name 'WindowsError' is not defined

Created on 12 Oct 2018  路  18Comments  路  Source: pypa/pipenv

I updated pipenv to version 2018.10.9 using brew, and I am getting the following error when I try to run a command:

Error %s while executing command %s name 'WindowsError' is not defined /usr/local/bin/pythonz -c import sys; print(sys.version.split()[0])
Traceback (most recent call last):
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/vistir/misc.py", line 103, in _spawn_subprocess
    return subprocess.Popen(cmd, **options)
  File "/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 756, in __init__
    restore_signals, start_new_session)
  File "/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 1499, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/bin/pythonz': '/usr/local/bin/pythonz'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/bin/pipenv", line 11, in <module>
    load_entry_point('pipenv==2018.10.9', 'console_scripts', 'pipenv')()
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 1114, in invoke
    return Command.invoke(self, ctx)
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/click/decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/cli/command.py", line 203, in cli
    clear=state.clear,
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/core.py", line 561, in ensure_project
    pypi_mirror=pypi_mirror,
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/core.py", line 484, in ensure_virtualenv
    python = ensure_python(three=three, python=python)
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/core.py", line 397, in ensure_python
    path_to_python = find_a_system_python(python)
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/core.py", line 360, in find_a_system_python
    python_entry = finder.find_python_version(line)
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/pythonfinder.py", line 87, in find_python_version
    major=major, minor=minor, patch=patch, pre=pre, dev=dev, arch=arch
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 261, in find_python_version
    (c for c in sorted(path_filter, key=version_sort, reverse=True)), None
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 258, in <genexpr>
    path_filter = filter(None, (sub_finder(p) for p in paths if p is not None))
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/mixins.py", line 106, in find_python_version
    py_filter, key=lambda child: child[1].version_sort, reverse=True
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/mixins.py", line 96, in <genexpr>
    if child.as_python
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/cached_property.py", line 35, in __get__
    value = obj.__dict__[self.func.__name__] = self.func(obj)
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 360, in as_python
    self.py_version = PythonVersion.from_path(self.path)
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/python.py", line 152, in from_path
    py_version = get_python_version(str(path.path))
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/utils.py", line 32, in get_python_version
    out, _ = vistir.misc.run(version_cmd, block=True, nospin=True)
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/vistir/misc.py", line 236, in run
    spinner=sp,
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/vistir/misc.py", line 122, in _create_subprocess
    c = _spawn_subprocess(cmd, env=env, block=block, cwd=cwd)
  File "/usr/local/Cellar/pipenv/2018.10.9/libexec/lib/python3.7/site-packages/pipenv/vendor/vistir/misc.py", line 104, in _spawn_subprocess
    except WindowsError as e:
NameError: name 'WindowsError' is not defined

I am not sure why I am getting this error. It seems I am getting an OSError related to Windows, but I am on macOS High Sierra 10.13.6. It also seems to be an error related to pythonz.

Type

Most helpful comment

Same thing on Ubuntu 18.04 with pipenv installed in a venv with:

pip: 18.1
python: 3.6.5
pipenv: 2018.10.13

Found a hacky workaround:

Modify:

.../site-packages/pipenv/vendor/pythonfinder/utils.py

Change the except clause on line 38 to be broader, e.g. except Exception

All 18 comments

I am having the same issue under:

  • macOS High Sierra 10.13.6
  • Python 3.6.5 installed via Homebrew
  • pipenv 2018.10.9 installed with pip3

I get the WindowsError when running pipenv --three but not pipenv install.

This will be fixed in the next release, sorry for the trouble!

@techalchemy Do you know of any workarounds until the new version is available?

Yes, wait 20 mins for the release!

@techalchemy Ah cool, thanks! I assumed it would take at least a couple of days.

Still getting this error on 2018.10.13, running MacOS 10.13.6, for some reason. Tried installing both via brew and pip.

$pipenv install
Error %s while executing command %s name 'WindowsError' is not defined /usr/local/bin/pythonz -c import sys; print(sys.version.split()[0])
Traceback (most recent call last):
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/vistir/misc.py", line 103, in _spawn_subprocess
    return subprocess.Popen(cmd, **options)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 1344, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/bin/pythonz': '/usr/local/bin/pythonz'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "~/Library/Python/3.6/bin/pipenv", line 11, in <module>
    sys.exit(cli())
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/click/decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/cli/command.py", line 249, in install
    editable_packages=state.installstate.editables,
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/core.py", line 1724, in do_install
    pypi_mirror=pypi_mirror,
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/core.py", line 565, in ensure_project
    pypi_mirror=pypi_mirror,
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/core.py", line 488, in ensure_virtualenv
    python = ensure_python(three=three, python=python)
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/core.py", line 401, in ensure_python
    path_to_python = find_a_system_python(python)
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/core.py", line 364, in find_a_system_python
    python_entry = finder.find_python_version(line)
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/pythonfinder/pythonfinder.py", line 91, in find_python_version
    major=major, minor=minor, patch=patch, pre=pre, dev=dev, arch=arch
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 262, in find_python_version
    (c for c in sorted(path_filter, key=version_sort, reverse=True)), None
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 259, in <genexpr>
    path_filter = filter(None, (sub_finder(p) for p in paths if p is not None))
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/pythonfinder/models/mixins.py", line 106, in find_python_version
    py_filter, key=lambda child: child[1].version_sort, reverse=True
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/pythonfinder/models/mixins.py", line 96, in <genexpr>
    if child.as_python
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/cached_property.py", line 35, in __get__
    value = obj.__dict__[self.func.__name__] = self.func(obj)
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 364, in as_python
    self.py_version = PythonVersion.from_path(self.path)
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/pythonfinder/models/python.py", line 162, in from_path
    py_version = get_python_version(str(path.path))
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/pythonfinder/utils.py", line 37, in get_python_version
    out, _ = vistir.misc.run(version_cmd, block=True, nospin=True)
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/vistir/misc.py", line 294, in run
    combine_stderr=combine_stderr
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/vistir/misc.py", line 125, in _create_subprocess
    combine_stderr=combine_stderr)
  File "~/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/vistir/misc.py", line 104, in _spawn_subprocess
    except WindowsError as e:
NameError: name 'WindowsError' is not defined



md5-0d61cfe55e82c8e40f541de1ee6739a7



$pipenv --version
pipenv, version 2018.10.13

hrm ok, this is still an issue then, thanks for persisting & sorry for that!

@techalchemy No problem, thank you for your help!

Same thing on Ubuntu 18.04 with pipenv installed in a venv with:

pip: 18.1
python: 3.6.5
pipenv: 2018.10.13

Found a hacky workaround:

Modify:

.../site-packages/pipenv/vendor/pythonfinder/utils.py

Change the except clause on line 38 to be broader, e.g. except Exception

For me the fix needs to be in the vistir dependency and relates to https://github.com/sarugaku/vistir/issues/18

The root cause seems to be that when pythonfinder tries to find a Python interpreter for the project, it executes prominent Python executables as it goes. If it hits a file that looks like a Python interpreter, but doesn't execute properly, the vistir dependency it uses for executing processes raises NameError as it tries to reference WindowsError on a non-Windows environment.

A workaround is to remove such files from your PATH. In my case, I had a leftover pythonz somewhere that tried to use Python 3.6 which I had already removed when upgrading to 3.7.

That is a good diagnosis of the problem, but IMHO it's not an optimal solution. Telling the user to go fishing around for rogue pythonz files in their PATH is not something a pipenv user should have to navigate.

For the record, this bit me tonight, too. 馃檨

macOS 10.13.3

Had a hiccup, ran brew upgrade pipenv (which broke some other things; ended up having to brew upgrade zsh) and now I'm here... hopefully this is relevant. I think it is?

pipenv --version
pipenv, version 2018.10.13
pipenv --three
Error %s while executing command %s name 'WindowsError' is not defined /usr/local/bin/pythonz -c import sys; print(sys.version.split()[0])
Traceback (most recent call last):
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/vistir/misc.py", line 103, in _spawn_subprocess
    return subprocess.Popen(cmd, **options)
  File "/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 756, in __init__
    restore_signals, start_new_session)
  File "/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 1499, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/bin/pythonz': '/usr/local/bin/pythonz'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/bin/pipenv", line 11, in <module>
    load_entry_point('pipenv==2018.10.13', 'console_scripts', 'pipenv')()
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 1114, in invoke
    return Command.invoke(self, ctx)
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/click/decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/cli/command.py", line 203, in cli
    clear=state.clear,
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/core.py", line 565, in ensure_project
    pypi_mirror=pypi_mirror,
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/core.py", line 510, in ensure_virtualenv
    ensure_python(three=three, python=python)
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/core.py", line 401, in ensure_python
    path_to_python = find_a_system_python(python)
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/core.py", line 364, in find_a_system_python
    python_entry = finder.find_python_version(line)
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/pythonfinder.py", line 91, in find_python_version
    major=major, minor=minor, patch=patch, pre=pre, dev=dev, arch=arch
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 262, in find_python_version
    (c for c in sorted(path_filter, key=version_sort, reverse=True)), None
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 259, in <genexpr>
    path_filter = filter(None, (sub_finder(p) for p in paths if p is not None))
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/mixins.py", line 106, in find_python_version
    py_filter, key=lambda child: child[1].version_sort, reverse=True
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/mixins.py", line 96, in <genexpr>
    if child.as_python
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/cached_property.py", line 35, in __get__
    value = obj.__dict__[self.func.__name__] = self.func(obj)
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 364, in as_python
    self.py_version = PythonVersion.from_path(self.path)
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/models/python.py", line 162, in from_path
    py_version = get_python_version(str(path.path))
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/pythonfinder/utils.py", line 37, in get_python_version
    out, _ = vistir.misc.run(version_cmd, block=True, nospin=True)
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/vistir/misc.py", line 294, in run
    combine_stderr=combine_stderr
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/vistir/misc.py", line 125, in _create_subprocess
    combine_stderr=combine_stderr)
  File "/usr/local/Cellar/pipenv/2018.10.13/libexec/lib/python3.7/site-packages/pipenv/vendor/vistir/misc.py", line 104, in _spawn_subprocess
    except WindowsError as e:
NameError: name 'WindowsError' is not defined

... I've been using Python for a long time, and had no idea what pythonz is. Running it directly gives me

pythonz
zsh: /usr/local/bin/pythonz: bad interpreter: /usr/local/opt/python/bin/python2.7: no such file or directory

... but I'm not sure why it's there to begin with, and why I'm suddenly having trouble with it. (I feel like I should blame brew somehow, at the moment).

fix will be out shortly, we are aware of the issue

thanks @techalchemy!

for everyone else, you can use full path for now to get around the error.

some examples:

  • default: pipenv install --python=python
  • homebrew: pipenv install --python=/usr/local/bin/python3
  • asdf: pipenv install --python=$HOME/.asdf/installs/python/3.6.7/bin/python
  • pyenv: pipenv install --python=$HOME/.pyenv/versions/3.7.0/bin/python

I was having this exception because I had a python3.7 executable script in my PATH that was actually running python through a Docker container (docker run ...). Removing/renaming the script solved the problem.

Sorry for the trouble, we are finalizing some merges and then cutting the release

Any updates for this? I'm also having the same issue.

  • pipenv, version 2018.10.13
  • Python 3.6.5 with pyenv
  • macOS 10.14.1

update: it seems to work if I run it pipenv install --python=python --dev (so with --python=python)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

randName picture randName  路  3Comments

AkiraSama picture AkiraSama  路  3Comments

jeyraof picture jeyraof  路  3Comments

fbender picture fbender  路  3Comments

Californian picture Californian  路  3Comments