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

Access is denied: 'C:\WINDOWS\system32\config\systemprofile' in pythonfinder.Finder #6093

Open
Joinyy opened this issue Feb 13, 2024 · 1 comment
Labels
Type: Vendored Dependencies This issue affects vendored dependencies within pipenv.

Comments

@Joinyy
Copy link

Joinyy commented Feb 13, 2024

Issue description

The pythonfinder.Finder dataclass, which tries to search all paths on the PATH environment variable somehow tries to access some system32 folders and throws an exception when that is not accessible. This happens with every pipenv call that tries gather information on the installed python versions, which means even pipenv --support broke.

Expected result

As I gave the --python option with a path to my python.exe on the commandline, I expected pipenv to completely ignore the pathsearch in the first place.
When I don't give that option, I expect the pathsearch to skip non-accessible paths.

Actual result

 pipenv sync --python=C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\python.exe -v                                                                                                                   14:48:14
Traceback (most recent call last):
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\Scripts\pipenv.exe\__main__.py", line 7, in <module>
    # when invoked as python -m pip <command>
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\click\core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\cli\options.py", line 58, in main
    return super().main(*args, **kwargs, windows_expand_args=False)
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\click\core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\click\core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\click\core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\click\core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\click\decorators.py", line 92, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\click\core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\click\decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\cli\command.py", line 644, in sync
    retcode = do_sync(
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\routines\install.py", line 321, in do_sync
    ensure_project(
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\utils\project.py", line 38, in ensure_project
    ensure_virtualenv(
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\utils\virtualenv.py", line 149, in ensure_virtualenv
    python = ensure_python(project, python=python)
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\utils\virtualenv.py", line 242, in ensure_python
    path_to_python = find_a_system_python(python)
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\utils\virtualenv.py", line 350, in find_a_system_python
    finder = Finder(system=True, global_search=True)
  File "<string>", line 8, in __init__
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\pythonfinder\pythonfinder.py", line 24, in __post_init__
    self.system_path = self.create_system_path()
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\pythonfinder\pythonfinder.py", line 30, in create_system_path
    return SystemPath.create(
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\pythonfinder\models\path.py", line 544, in create
    instance._run_setup()
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\pythonfinder\models\path.py", line 182, in _run_setup
    path_instances = [
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\pythonfinder\models\path.py", line 185, in <listcomp>
    if exists_and_is_accessible(Path(p.strip('"')).resolve())
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\pathlib.py", line 1205, in resolve
    s = self._flavour.resolve(self, strict=strict)
  File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\pathlib.py", line 206, in resolve
    s = self._ext_to_normal(_getfinalpathname(s))
PermissionError: [WinError 5] Access is denied: 'C:\\WINDOWS\\system32\\config\\systemprofile'

Steps to replicate

A simple pipenv install will do on my system (Windows 10, Python 3.9.5, pipenv 2023.12.1).

Minimal pipfile:
[[source]]
url = "https://credentials@our-artifactory.com/artifactory/api/pypi/python-virtual/simple"
name = "pypi"
verify_ssl = true

[dev-packages]
python-dotenv = {version = ">=0.21.0"}
requests = {version = ">=2.29.0"}

[packages]
Sphinx = {version = ">=6.2.1"}
furo = {version = ">=2023.3.27"}

[requires]
python_version = "3.9.5"

[pipenv]
allow_prereleases = true
install_search_all_sources = true
My PATH env variable:
C:\Program Files\PowerShell\7
C:\Program Files\WindowsApps\Microsoft.WindowsTerminal_1.16.10261.0_x64__8wekyb3d8bbwe
C:\Program Files\Python312\Scripts\
C:\Program Files\Python312\
C:\Program Files (x86)\Vector vFlash 9\Bin\Automation\
C:\Program Files (x86)\Vector vFlash 8\Bin\Automation\
C:\Program Files (x86)\Vector vFlash 7\Bin\Automation\
C:\Progra~1\Rational\ClearCase\bin
C:\WINDOWS\system32
C:\WINDOWS
C:\WINDOWS\System32\Wbem
C:\WINDOWS\System32\WindowsPowerShell\v1.0\
C:\WINDOWS\System32\OpenSSH\
C:\Program Files\RedHat\java-1.8.0-openjdk\missioncontrol\
C:\Program Files\RedHat\java-1.8.0-openjdk\webstart\
C:\Program Files\RedHat\java-1.8.0-openjdk\bin
C:\Program Files\RedHat\java-1.8.0-openjdk\jre\bin
C:\Program Files\Rational\common
C:\Program Files (x86)\IBM\gsk8\lib
C:\Program Files (x86)\IBM\gsk8\bin
C:\Program Files\Rational\ClearCase\RemoteClient\cteapis
C:\Program Files\gs\gs9.21\bin
C:\Program Files\Git\cmd
C:\Program Files\dotnet\
C:\Program Files\MATLAB\R2020b\runtime\win64
C:\Program Files\MATLAB\R2020b\bin
C:\Program Files\MATLAB\R2019b\runtime\win64
C:\Program Files\MATLAB\R2019b\bin
C:\Program Files\MATLAB\R2017b\runtime\win64
C:\Program Files\MATLAB\R2017b\bin
C:\Program Files\MATLAB\R2015b64\runtime\win64
C:\Program Files\MATLAB\R2015b64\bin
C:\Program Files\MATLAB\R2015b64\polyspace\bin
C:\WINDOWS\system32\config\systemprofile\.dnx\bin
C:\Program Files\Microsoft DNX\Dnvm\
C:\Program Files\Microsoft SQL Server\120\Tools\Binn\
C:\Program Files\Microsoft SQL Server\130\Tools\Binn\
C:\Program Files\MATLAB\MATLAB Runtime\v97\runtime\win64
C:\Program Files\7-Zip
C:\Program Files\Anaconda3\condabin
C:\Program Files (x86)\Plantronics\Spokes3G\
C:\Program Files (x86)\dotnet\
C:\Program Files\MiKTeX 2.9\miktex\bin\x64\
C:\Program Files (x86)\RedHat\java-1.8.0-openjdk\webstart\
C:\Program Files (x86)\RedHat\java-1.8.0-openjdk\bin
C:\Program Files (x86)\RedHat\java-1.8.0-openjdk\jre\bin
C:\Program Files (x86)\Vector CANdb++ 3.1\Exec32
C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\
C:\Program Files\PowerShell\7\
C:\Program Files\nodejs\
C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin
C:\toolbase\cmake\3.20.2\bin
C:\Program Files\MATLAB\R2020b\bin\win64
C:\app\ninja
C:\Users\USERNAME\.dnx\bin
C:\Users\USERNAME\AppData\Local\Microsoft\WindowsApps
C:\Users\USERNAME\AppData\Local\Programs\Microsoft VS Code\bin
C:\Users\USERNAME\AppData\Local\Gpg4win\..\GnuPG\bin
C:\Program Files\Anaconda3
C:\Program Files\Anaconda3\Scripts
C:\Users\USERNAME\AppData\Roaming\Python\Python38\Scripts
C:\app\cygwin64\bin
C:\Program Files\MATLAB\R2017b\bin\win64
C:\Users\USERNAME\AppData\Local\Programs\oh-my-posh\bin
C:\Program Files\Anaconda3\Library\bin
C:\Users\USERNAME\AppData\Local\Microsoft\WindowsApps
C:\Users\USERNAME\AppData\Roaming\Python\Python39\Scripts
C:\app\Graphviz\bin
C:\Users\USERNAME\AppData\Local\Pandoc\
C:\Users\USERNAME\AppData\Local\Programs\Neovim\bin
C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\vcpkg
C:\Users\USERNAME\AppData\Roaming\npm
C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64
C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\Scripts

I added the closing </details> tag manually!

$ pipenv --support

Pipenv version: '2023.12.1'

Pipenv location: 'C:\\toolbase\\python\\3.9.5.0.0\\python-3.9.5.amd64\\lib\\site-packages\\pipenv'

Python location: 'C:\\toolbase\\python\\3.9.5.0.0\\python-3.9.5.amd64\\python.exe'

OS Name: 'nt'

User pip version: '23.3.2'

user Python installations found:

Traceback (most recent call last):
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\Scripts\pipenv.exe_main
.py", line 7, in
# when invoked as python -m pip
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\click\core.py", line 1157, in call
return self.main(*args, **kwargs)
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\cli\options.py", line 58, in main
return super().main(*args, **kwargs, windows_expand_args=False)
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\click\core.py", line 1078, in main
rv = self.invoke(ctx)
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\click\core.py", line 1666, in invoke
rv = super().invoke(ctx)
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\click\core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\click\core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\click\decorators.py", line 92, in new_func
return ctx.invoke(f, obj, *args, **kwargs)
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\click\core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\click\decorators.py", line 33, in new_func
return f(get_current_context(), *args, **kwargs)
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\cli\command.py", line 134, in cli
get_pipenv_diagnostics(state.project)
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\help.py", line 32, in get_pipenv_diagnostics
finder = pythonfinder.Finder(system=False, global_search=True)
File "", line 8, in init
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\pythonfinder\pythonfinder.py", line 24, in post_init
self.system_path = self.create_system_path()
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\pythonfinder\pythonfinder.py", line 30, in create_system_path
return SystemPath.create(
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\pythonfinder\models\path.py", line 544, in create
instance._run_setup()
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\pythonfinder\models\path.py", line 182, in _run_setup
path_instances = [
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\site-packages\pipenv\vendor\pythonfinder\models\path.py", line 185, in
if exists_and_is_accessible(Path(p.strip('"')).resolve())
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\pathlib.py", line 1205, in resolve
s = self._flavour.resolve(self, strict=strict)
File "C:\toolbase\python\3.9.5.0.0\python-3.9.5.amd64\lib\pathlib.py", line 206, in resolve
s = self._ext_to_normal(_getfinalpathname(s))
PermissionError: [WinError 5] Access is denied: 'C:\WINDOWS\system32\config\systemprofile'

@matteius
Copy link
Member

Thank you for the issue report, it would be helpful to open a similar issue in pythonfinder to track there as that is where any fix would need to be applied.

@matteius matteius added the Type: Vendored Dependencies This issue affects vendored dependencies within pipenv. label Apr 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Vendored Dependencies This issue affects vendored dependencies within pipenv.
Projects
None yet
Development

No branches or pull requests

2 participants