-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Select Interpreter
failed to find 64-bit python installation due to wrong IInterpreterLocatorService
parameter.
#414
Comments
Maybe this issue can be renamed: |
Anyway, I'll try fix this thing myself. |
@MichaelSuen-thePointer The value for the IS_64_BIT constant is set here.
Please could you try installing the 64bit version of VS Code and checking whether this works? |
Further to the issue, looks like nodejs returns the wrong value for However, a work around for now is to ensure the 64bit version of VS Code has been installed on a 64bit Windows. |
@DonJayamanne Tried 64-bit VS Code, the result of |
Environment data
VS Code version: 1.18.1
Python Extension version: 0.8.0
Python Version: python 3.6.3 64-bit & python 2.7.14 64-bit
OS and version: Windows 10.0.16299.64
Actual behavior
Expected behavior
Steps to reproduce:
Here is my exploration by debugging this extension myself:
The extension cannot find 64-bit python installation via
WindowsRegistryService
class which implements interfaceIInterpreterLocatorService
the code is here: windowsRegistryService.ts
In short, this class find python installation via predefined registry path, it does resolved the correct registry path:
\Software\Python\PythonCore\2.7\InstallPath
and\Software\Python\PythonCore\2.7\InstallPath
, but due to theis64Bit
member of the class set tofalse
in constructor, it cannot find anything in the 32-bit(?) registry.After manualy changing
this.is64Bit
member ofWindowsRegistryService
totrue
in the debugger, the class can correctly find both of the 2 python interpreters, and tagged it as64-bit
.Looking at the constructor, the
is64Bit
parameter is injected by some other mechanism, which I cannot understand by looking at the code, can anyone explain it?for now, the interpreter locator falls back to find python via PATH and returns only 1 python.exe
The text was updated successfully, but these errors were encountered: