ContinuumIO / anaconda-issues

Anaconda issue tracking
648 stars 221 forks source link

Python "SysVersion" does not get updated in registry (windows) when using conda install python=3.10.9 to update an older python installation #13170

Open wlei2021 opened 1 year ago

wlei2021 commented 1 year ago

Checklist

Impacted product

What happened?

Install an older Miniconda (e.g. Product version 4.5.12 and this will install Python version 3.7) After Miniconda installation completed, do the following: 1) Check the Python "SysVersion" in windows registry: Registry path: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Python\ContinuumAnalytics\Anaconda37-64 SysVersion shows 3.7 2) update Python to a newer version, e.g. Python 3.10.9, using the following command: conda install python=3.10.9 When python 3.10.9 installation completed, check the Python "SysVersion" in windows registry again: Registry path: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Python\ContinuumAnalytics\Anaconda37-64 SysVersion still shows 3.7 which is not correct.

According to https://peps.python.org/pep-0514/, "SysVersion" should show the correct Python Version which in the above case (#2) should be 3.10.

Reference from https://peps.python.org/pep-0514/: "If a string value named SysVersion exists, it must be in x.y or x.y.z format matching the version returned by sys.version_info in the interpreter. If omitted, the Python version is unknown. (For PythonCore, the default is the first three characters of the Tag.) If a string value named SysArchitecture exists, it must match the first element of the tuple returned by platform.architecture(). Typically, this will be “32bit” or “64bit”. If omitted, the architecture is unknown. (For PythonCore, the architecture is “32bit” when registered under HKEY_LOCAL_MACHINE\Software\Wow6432Node\Python or anywhere on a 32-bit operating system, “64bit” when registered under HKEY_LOCAL_MACHINE\Software\Python on a 64-bit machine, and unknown when registered under HKEY_CURRENT_USER.) Note that each of these values is recommended, but optional. Omitting SysVersion or SysArchitecture may prevent some tools from correctly supporting the environment. A complete example may look like this: HKEY_CURRENTUSER\Software\Python\ExampleCorp\examplepy (Default) = (value not set) DisplayName = "Example Py Distro 3" SupportUrl = http://www.example.com/distro-3 Version = "3.0.12345.0" SysVersion = "3.6.0" SysArchitecture = "64bit" "

Expected behavior or outcome

According to https://peps.python.org/pep-0514/, "SysVersion" should show the correct Python Version which in the above case (#2) should be 3.10.

Conda info

(base) C:\Users\wlei>conda info

     active environment : base
    active env location : C:\ProgramData\Miniconda3
            shell level : 1
       user config file : C:\Users\wlei\.condarc
 populated config files : C:\Users\wlei\.condarc
          conda version : 23.1.0
    conda-build version : not installed
         python version : 3.10.9.final.0
       virtual packages : __archspec=1=x86_64
                          __cuda=10.2=0
                          __win=0=0
       base environment : C:\ProgramData\Miniconda3  (writable)
      conda av data dir : C:\ProgramData\Miniconda3\etc\conda
  conda av metadata url : None
           channel URLs : https://repo.anaconda.com/pkgs/main/win-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/win-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/msys2/win-64
                          https://repo.anaconda.com/pkgs/msys2/noarch
                          https://conda.anaconda.org/conda-forge/win-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://conda.anaconda.org/pypi/win-64
                          https://conda.anaconda.org/pypi/noarch
          package cache : C:\ProgramData\Miniconda3\pkgs
                          C:\Users\wlei\.conda\pkgs
                          C:\Users\wlei\AppData\Local\conda\conda\pkgs
       envs directories : C:\ProgramData\Miniconda3\envs
                          C:\Users\wlei\.conda\envs
                          C:\Users\wlei\AppData\Local\conda\conda\envs
               platform : win-64
             user-agent : conda/23.1.0 requests/2.28.1 CPython/3.10.9 Windows/10 Windows/10.0.19044
          administrator : False
             netrc file : None
           offline mode : False

Conda config

(base) C:\Users\wlei>conda config --show-sources
==> C:\Users\wlei\.condarc <==
envs_dirs:
  - C:\ProgramData\Miniconda3\envs
ssl_verify: True
channels:
  - defaults
  - conda-forge
  - pypi

Conda list

(base) C:\Users\wlei>conda list --show-channel-urls
# packages in environment at C:\ProgramData\Miniconda3:
#
# Name                    Version                   Build  Channel
blas                      2.16                   openblas    <unknown>
brotlipy                  0.7.0           py310h2bbff1b_1002    defaults
bw-bmc                    0.0.24                   pypi_0    pypi
bw-bmc-lite               0.0.2                    pypi_0    pypi
bw-cardtest               1.0.0                    pypi_0    pypi
bw-common                 2021.8                   pypi_0    pypi
bw-mctp                   0.0.8                    pypi_0    pypi
bw-pci                    2021.8                   pypi_0    pypi
bw-pldm                   0.0.17                   pypi_0    pypi
bw-s10                    2021.8                   pypi_0    pypi
bw-sdk                    2021.8                   pypi_0    pypi
bw-uart-edge              0.0.2                    pypi_0    pypi
bw-usb                    2021.8                   pypi_0    pypi
bzip2                     1.0.8                he774522_0    defaults
ca-certificates           2023.01.10           haa95532_0    defaults
certifi                   2022.12.7       py310haa95532_0    defaults
cffi                      1.14.6                   pypi_0    pypi
charset-normalizer        2.0.4              pyhd3eb1b0_0    defaults
conda                     23.1.0          py310haa95532_0    defaults
conda-env                 2.6.0                         1    defaults
conda-package-handling    2.0.2           py310haa95532_0    defaults
conda-package-streaming   0.7.0           py310haa95532_0    defaults
console_shortcut          0.1.1                         3    defaults
cryptography              39.0.1          py310h21b164f_0    defaults
hexdump                   3.3                      pypi_0    pypi
idna                      3.4             py310haa95532_0    defaults
intelhex                  2.3.0                    pypi_0    pypi
libblas                   3.8.0               16_openblas    <unknown>
libcblas                  3.8.0               16_openblas    <unknown>
libffi                    3.4.2                hd77b12b_6    defaults
libflang                  5.0.0           h6538335_20180525    <unknown>
liblapack                 3.8.0               16_openblas    <unknown>
liblapacke                3.8.0               16_openblas    <unknown>
libopenblas               0.3.9                hcfe7411_0    <unknown>
llvm-meta                 5.0.0                         0    <unknown>
m2w64-gcc-libgfortran     5.3.0                         6    <unknown>
m2w64-gcc-libs            5.3.0                         7    <unknown>
m2w64-gcc-libs-core       5.3.0                         7    <unknown>
m2w64-gmp                 6.1.0                         2    <unknown>
m2w64-libwinpthread-git   5.0.0.4634.697f757               2    <unknown>
menuinst                  1.4.19          py310h59b6b97_0    defaults
msys2-conda-epoch         20160418                      1    <unknown>
numpy                     1.23.5                   pypi_0    pypi
openmp                    5.0.0                    vc14_1  [vc14]  <unknown>
openssl                   1.1.1t               h2bbff1b_0    defaults
pip                       23.0.1          py310haa95532_0    defaults
pluggy                    1.0.0           py310haa95532_1    defaults
pycosat                   0.6.4           py310h2bbff1b_0    defaults
pycparser                 2.21               pyhd3eb1b0_0    defaults
pydantic                  1.8.2                    pypi_0    pypi
pyopenssl                 23.0.0          py310haa95532_0    defaults
pyserial                  3.5                      pypi_0    pypi
pysocks                   1.7.1           py310haa95532_0    defaults
python                    3.10.9               h966fe2a_2    defaults
pyyaml                    5.4.1                    pypi_0    pypi
requests                  2.28.1          py310haa95532_1    defaults
ruamel.yaml               0.17.21         py310h2bbff1b_0    defaults
ruamel.yaml.clib          0.2.6           py310h2bbff1b_1    defaults
setuptools                67.6.0             pyhd8ed1ab_0    conda-forge
sqlite                    3.41.1               h2bbff1b_0    defaults
tk                        8.6.12               h2bbff1b_0    defaults
toolz                     0.12.0          py310haa95532_0    defaults
tqdm                      4.44.1                     py_0    <unknown>
typing-extensions         4.0.0                    pypi_0    pypi
tzdata                    2022g                h04d1e81_0    defaults
urllib3                   1.26.14         py310haa95532_0    defaults
vc                        14.1                 h0510ff6_4    defaults
vs2015_runtime            14.16.27012          hf0eaf9b_1    <unknown>
wheel                     0.38.4          py310haa95532_0    defaults
win_inet_pton             1.1.0           py310haa95532_0    defaults
xz                        5.2.10               h8cc25b3_1    defaults
yaml                      0.1.7                hc54c509_2    defaults
zlib                      1.2.13               h8cc25b3_0    defaults
zstandard                 0.19.0          py310h2bbff1b_0    defaults

Additional information

MinicondaRegistryShowIncorrectSysVersionAfterUpdate

rct commented 8 months ago

I recently tripped over this too. My system was showing Python 3.7 in a number of places including in Windows '_Add or Remove Programs'. This pointed to the Anconda3 installation, which was 2023-07. I've updated and/or done a fresh install of the Anaconda distribution a number of times since Python 3.7.

The uninstall entry for Python 3.7 tries to run the uninstaller for the current Anaconda installation.

The entries for the Python Launcher py give misleading info.

AFAICT there doesn't seem to be a way to get the Anaconda installer to recreate the Windows Registry keys for PEP-0514 without uninstalling and reinstalling.