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

Error when countering a directory with no read permissions #285

Open
muusik opened this issue Mar 8, 2021 · 1 comment
Open

Error when countering a directory with no read permissions #285

muusik opened this issue Mar 8, 2021 · 1 comment

Comments

@muusik
Copy link

muusik commented Mar 8, 2021

While using pipenv to install a package, it fails with PermissionError because it looks like requirementslib tries to scan a directory that the current user has no read permissions for. I was unable to find a way to make requirementslib ignore that directory, thus I'm reporting this issue here: Moving swiftly past the life decisions that led to me having a root-owned directory in a Python project path, wouldn't the correct behaviour be to ignore such directories?

Here's the traceback:

Adding pre-commit to Pipfile's [dev-packages]...
✔ Installation Succeeded 
Pipfile.lock (0f2c10) out of date, updating to (17e118)...
Locking [dev-packages] dependencies...
Building requirements...
Resolving dependencies...
✔ Success! 
Locking [packages] dependencies...
Building requirements...
Traceback (most recent call last):
  File "/home/abstract/.local/bin/pipenv", line 8, in <module>
    sys.exit(cli())
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/vendor/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/vendor/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/vendor/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/vendor/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/vendor/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/vendor/click/decorators.py", line 73, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/vendor/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/vendor/click/decorators.py", line 21, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/cli/command.py", line 233, in install
    retcode = do_install(
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/core.py", line 2193, in do_install
    do_init(
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/core.py", line 1274, in do_init
    do_lock(
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/core.py", line 1102, in do_lock
    venv_resolve_deps(
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/utils.py", line 1332, in venv_resolve_deps
    deps = convert_deps_to_pip(
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/utils.py", line 1451, in convert_deps_to_pip
    new_dep = Requirement.from_pipfile(dep_name, dep)
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/vendor/requirementslib/models/requirements.py", line 2747, in from_pipfile
    r = FileRequirement.from_pipfile(name, pipfile)
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/vendor/requirementslib/models/requirements.py", line 1841, in from_pipfile
    arg_dict["parsed_line"] = Line(line)
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/vendor/requirementslib/models/requirements.py", line 171, in __init__
    self.parse()
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/vendor/requirementslib/models/requirements.py", line 1304, in parse
    self.parse_name()
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/vendor/requirementslib/models/requirements.py", line 1030, in parse_name
    name = self._parse_name_from_path()
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/vendor/requirementslib/models/requirements.py", line 993, in _parse_name_from_path
    metadata = get_metadata(self.path)
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/vendor/requirementslib/models/setup_info.py", line 567, in get_metadata
    dist = get_distinfo_dist(path, pkg_name=pkg_name)
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/vendor/requirementslib/models/setup_info.py", line 535, in get_distinfo_dist
    dist_dir = next(iter(find_distinfo(path, pkg_name=pkg_name)), None)
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/vendor/requirementslib/models/setup_info.py", line 527, in find_distinfo
    for dist_dir in dist_dirs:
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/vendor/requirementslib/models/setup_info.py", line 517, in <genexpr>
    dist_dirs = (
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/vendor/requirementslib/models/setup_info.py", line 490, in iter_metadata
    with contextlib.closing(ScandirCloser(p)) as path_iterator:
  File "/home/abstract/.local/lib/python3.9/site-packages/pipenv/vendor/requirementslib/models/setup_info.py", line 450, in __init__
    self.iterator = scandir(path)
PermissionError: [Errno 13] Permission denied: '/home/abstract/foo/pgdata'
@muusik
Copy link
Author

muusik commented Mar 10, 2021

Funnily enough, I have encountered a similar problem in pythonfinder as well.

Traceback (most recent call last):
  File "/data01/virt43497/.local/bin/pipenv", line 8, in <module>
    sys.exit(cli())
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/vendor/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/vendor/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/vendor/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/vendor/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/vendor/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/vendor/click/decorators.py", line 73, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/vendor/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/vendor/click/decorators.py", line 21, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/cli/command.py", line 696, in sync
    system=state.system
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/core.py", line 2877, in do_sync
    pypi_mirror=pypi_mirror,
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/core.py", line 580, in ensure_project
    pypi_mirror=pypi_mirror,
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/core.py", line 498, in ensure_virtualenv
    python = ensure_python(three=three, python=python)
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/core.py", line 388, in ensure_python
    path_to_python = find_a_system_python(python)
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/core.py", line 350, in find_a_system_python
    return next(iter(finder.find_all_python_versions()), None)
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/vendor/pythonfinder/pythonfinder.py", line 323, in find_all_python_versions
    major=major, minor=minor, patch=patch, pre=pre, dev=dev, arch=arch, name=name
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 547, in find_all_python_versions
    values = list(self.get_pythons(sub_finder))
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 505, in get_pythons
    pythons = [entry for entry in self._get_all_pythons(finder)]
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 505, in <listcomp>
    pythons = [entry for entry in self._get_all_pythons(finder)]
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 498, in _get_all_pythons
    for python in self._filter_paths(finder):
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 490, in _filter_paths
    python_versions = finder(path)
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/vendor/pythonfinder/models/mixins.py", line 330, in find_all_python_versions
    unnested = [sub_finder(path) for path in expand_paths(self)]
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/vendor/pythonfinder/models/mixins.py", line 330, in <listcomp>
    unnested = [sub_finder(path) for path in expand_paths(self)]
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/vendor/pythonfinder/utils.py", line 433, in expand_paths
    for p in path.children.values():
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 751, in children
    for child_key, child_val in self._gen_children():
  File "/data01/virt43497/.local/lib64/python3.6/site-packages/pipenv/vendor/pythonfinder/models/path.py", line 733, in _gen_children
    for child in self._filter_children():
  File "/usr/lib64/python3.6/pathlib.py", line 1081, in iterdir
    for name in self._accessor.listdir(self):
  File "/usr/lib64/python3.6/pathlib.py", line 387, in wrapped
    return strfunc(str(pathobj), *args)
PermissionError: [Errno 13] Permission denied: '/opt/zse/sbin'

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

1 participant