Mic*_*ael 9 python windows installation anaconda miniconda
在安装过程中(Windows操作系统)我有2个选择:
第一个选项非常明显。我完全理解。但第二个呢?“登记”一词是什么意思?
它创建带有字符串“好的我已经注册了你的Python”的文件还是什么?具体会进行哪些操作?太令人困惑了。我已阅读他们网站上的整个文档,但我找不到任何相关内容。
我今天调查了这个问题并揭示了其中的秘密。您指的是以下 Anaconda 安装程序 UI,对吗?
我先给出我的结论。他说的是:
将 Anaconda3 注册为我的默认 Python 3.9
不是
将 Anaconda3 注册为我的默认 Python
这意味着,
我通过Anaconda3-2022.05-Windows-x86_64.exe一系列实验验证了我的结论。
写一个t3.py内容:
#!/usr/bin/python3
import sys
print(sys.executable)
Run Code Online (Sandbox Code Playgroud)
运行时,它将向我们显示正在使用哪个 python.exe。
安装 python.org 官方(为简洁起见,简称为“官方”)python-3.5.4.exe,使用默认选项。我们会得到一个regkey
[HKCU\SOFTWARE\Python\ PythonCore \3.5-32]
并且 python.exe 位置已注册在那里。
根据PEP-514,PythonCore是 python.org 为自己选择的“公司名称”。
现在,运行t3.py,我们看到使用的是Python 3.5。
现在,安装Anaconda,勾选“Register 3.9”选项,我将其安装到d:\Anaconda3. 然后我们看到创建了两个注册表项。
首先,[HKCU\SOFTWARE\Python\ContinuumAnalytics\Anaconda39-64]这标志着 Anaconda 自己的 Python 实例。
其次,[HKCU\SOFTWARE\Python\PythonCore\3.9]这假装安装了官方 Python 实例。因此,t3.py现在d:\anaconda3\python.exe使用说。
是的,如果我们没有勾选“Register 3.9”选项,则
[HKCU\SOFTWARE\Python\PythonCore\3.9]不会创建regkey,因此 py.exe 不会选择 Anaconda 。
现在回到 EXP.0 状态——我个人使用 VM 并恢复到 EXP.0 快照。
我们安装官方的 python 3.10,然后安装 Anaconda ,仍然勾选“注册 3.9”选项。
那么会发生什么呢t3.py?
答案是,
C:\Users\chj\AppData\Local\Programs\Python\ Python310 \python.exe
再次检查注册表,3.9(标记为橙色)节点仍然是由 Anaconda 安装程序创建的,但 py.exe 没有选择它作为默认版本。
显然,py.exe 选择了最新的版本号。
事情还没有结束。如果我们已经有了官方的Python 3.9,并且我们进一步安装了Anaconda(提供了他自己的3.9),那么会发生什么?
Anaconda 首先会友好地提示我们他将覆盖 3.9 指针,根据 EXP.1 和 EXP.2 看起来相当合理。
然而,安装后t3.py显示默认的3.9仍然指向官方版本,Anaconda的覆盖并没有发生。嗯,显然,这是BUGGY。