pipenv: NameError: name 'WindowsError' is not defined
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.
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Reactions: 7
- Comments: 18 (6 by maintainers)
Commits related to this issue
- Upgrade vendored dependencies - Upgrade pythonfinder - Upgrade vistir - Upgrade requirementslib - Vendor backported version of `functools.lru_cache` for performance - Fix editable dependency installa... — committed to pypa/pipenv by techalchemy 6 years ago
- Upgrade vendored dependencies - Upgrade pythonfinder - Upgrade vistir - Upgrade requirementslib - Vendor backported version of `functools.lru_cache` for performance - Fix editable dependency installa... — committed to pypa/pipenv by techalchemy 6 years ago
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
Still getting this error on
2018.10.13
, running MacOS 10.13.6, for some reason. Tried installing both viabrew
andpip
.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.
@techalchemy Do you know of any workarounds until the new version is available?