双击打开Python 脚本同时自动切换Anaconda 虚拟环境

Python launcher

首先提一下基本原理,Windows 上Python 脚本双击运行需要一个辅助程序,就是Python launcher,用Python 官方的windows 安装包安装时会有一个默认勾上的复选框,就是选择要不要这东西。安装后python 的默认打开方式会关联到python launcher,就实现了双击打开效果。

在这里插入图片描述

除了双击打开,命令行里直接打开脚本文件时也会自动调用Python lancher。详细的官方文档可以去看:PEP 397,我就不多说了。不确定Anaconda 安装时会不会带这个,我用的Mamba Forge 似乎没有,简单的安装方法就是再下载一份官方的Python 装上,不加入PATH,放着也不会影响什么,免得还要去查该怎么改注册表。

自定义启动命令

Python launcher 安装后位于C 盘Windows 目录下,文件名叫py.exe,这个位置是默认加入PATH 的。可以用一个配置文件py.ini 自定义若干用于启动脚本的命令,配置文件要放在py.exe 的相同目录或者用户的AppData/Local 底下,AppData 下的配置会覆盖Windows 目录下的配置。先在上面说的两个位置里挑一个新建py.ini 文件,配置自定义命令的方法是在py.ini 文件中添加以下内容:

[commands]
base-conda-env = "activate.bat base & python"
other-conda-env = "activate.bat other & python"

等号左边是命令名称,右边是命令行。第一个命令base-conda-env 用来切换到base 环境再调用python.exe 执行脚本,相应的第二个就是先切换到other 环境。activate.bat 是Conda 自带的用来切换虚拟环境的脚本,安装Conda 之后不一定会自动添加到PATH 里,因为官方要避免和别的程序冲突,可以在Conda 的命令行窗口中。脚本中用一行文件头(SHEBANG)指定解释器位置,或者指定自定义命令,要切换base 环境就这样写:

#!base-conda-env

然后双击,py.exe 就会使用自定义命令执行脚本,效果类似于执行如下的命令行:

activate.bat base & python main.py

指定Python 版本或位置

然后是一个方便的小功能,也可以说是滥用~ 可以在配置文件中指定Python launcher 默认调用的Python 版本,比如这样写:

[defaults]
python=3.9

就是默认用3.9 版本。如果不设置,默认调用系统中最新的版本。也可以在环境变量中设置:

在这里插入图片描述

但是它具体是怎么根据版本号找到python 环境的路径的呢?官方的安装包会在注册表里留下信息,类似这样:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Python\PythonCore]
"DisplayName"="Official Python installed with Scoop"
"SupportUrl"="https://www.python.org/"

[HKEY_CURRENT_USER\Software\Python\PythonCore\3.11]
"DisplayName"="Python 3.11 (64-bit)"
"SupportUrl"="https://www.python.org/"
"Version"="3.11.1"
"SysVersion"="3.11"
"SysArchitecture"="64bit"

[HKEY_CURRENT_USER\Software\Python\PythonCore\3.11\Help\Main Python Documentation]
@="C:\\Users\\chris\\scoop\\apps\\python\\3.11.1\\Doc\\python3111.chm"
"DisplayName"="Python 3.11.1 Documentation"

[HKEY_CURRENT_USER\Software\Python\PythonCore\3.11\InstallPath]
@="C:\\Users\\chris\\scoop\\apps\\python\\3.11.1"
"ExecutablePath"="C:\\Users\\chris\\scoop\\apps\\python\\3.11.1\\python.exe"
"WindowedExecutablePath"="C:\\Users\\chris\\scoop\\apps\\python\\3.11.1\\pythonw.exe"

[HKEY_CURRENT_USER\Software\Python\PythonCore\3.11\PythonPath]
@="C:\\Users\\chris\\scoop\\apps\\python\\3.11.1\\Lib\\;C:\\Users\\chris\\scoop\\apps\\python\\3.11.1\\DLLs\\"

这是用Scoop 安装的Python3.11.1 的注册表文件,新建个.reg 文件,然后双击就可以把这些信息添加到注册表里。其中包含了安装的版本和文件路径信息,和官方版是兼容的。既然如此,自定义一个Python 版本,把这个版本设置成默认,然后就不用在脚本里指定Python 位置了。比如:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Python\PythonCore]
"DisplayName"="Workaround entry to make pylauncher work."
"SupportUrl"="https://www.python.org/"

[HKEY_CURRENT_USER\Software\Python\PythonCore\3.0]
"DisplayName"="Custom python installation  (64-bit)"
"SupportUrl"="https://www.python.org/"
"Version"="3.0.0"
"SysVersion"="3.0"
"SysArchitecture"="64bit"

[HKEY_CURRENT_USER\Software\Python\PythonCore\3.0\InstallPath]
@="C:\\Users\\lovenpeace\\mambaforge"
"ExecutablePath"="C:\\Users\\lovenpeace\\mambaforge\\python.exe"
"WindowedExecutablePath"="C:\\Users\\lovenpeace\\mambaforge\\pythonw.exe"

[HKEY_CURRENT_USER\Software\Python\PythonCore\3.0\PythonPath]
@="C:\\Users\\lovenpeace\\mambaforge\\Lib\\;C:\\Users\\lovenpeace\\mambaforge\\DLLs\\"

新建了一个Python3.0 版本,把路径都换到另一个地方,比方说一个虚拟环境。因为Python launcher 默认使用版本号最大的Python,所以不设置成3.1415 之类更大的数值,以免一时疏忽导致什么灵异现象。

### 回答1: 要在Anaconda中安装Python 3.7的虚拟环境,可以按照以下步骤进行操作: 1. 打开Anaconda Navigator,点击"Environments"(环境)选项卡。 2. 在环境选项卡中,点击右下角的"Create"(创建)按钮。 3. 输入虚拟环境的名称,例如"python3.7_env"。 4. 在"Package"(包)下拉菜单中,选择Python版本为3.7。 5. 确认后,点击"Create"按钮来创建虚拟环境。 6. 等待一段时间,Anaconda将会自动下载和安装Python 3.7及其相关库和依赖。 7. 安装完成后,切换到新创建的虚拟环境。可以在命令行中输入以下命令来激活虚拟环境: ``` conda activate python3.7_env ``` 8. 现在您可以在该虚拟环境中使用Python 3.7进行开发和运行程序了。 通过这种方式,您可以使用Anacondaconda管理工具在Python 3.7的虚拟环境中安装和管理软件包,而不会影响到Anaconda默认环境或其他虚拟环境。这对于管理不同版本的Python和相关库非常有用,可以帮助您在不同项目之间进行切换和管理。 ### 回答2: 要安装Anaconda虚拟环境并使用Python 3.7,按照以下步骤进行操作: 1. 首先,从Anaconda官方网站(https://www.anaconda.com/products/individual)下载适用于您的操作系统的Anaconda安装程序。根据您的系统选择正确的版本(Windows、macOS或Linux)并下载安装程序。 2. 下载完安装程序后,双击运行安装程序,并按照指示完成Anaconda的安装。 3. 安装程序中的默认配置通常足够。确保勾选“Add Anaconda to my PATH environment variable”选项,这将确保您可以从命令行中访问到Anaconda。 4. 安装完成后,打开命令提示符或终端,并输入以下命令来创建一个新的虚拟环境,并指定使用Python 3.7:conda create --name myenv python=3.7 5. 执行上述命令后,Anaconda自动创建一个新的虚拟环境,名为myenv,并安装Python 3.7及其依赖项。 6. 虚拟环境创建成功后,输入以下命令来激活虚拟环境conda activate myenv 7. 输入命令后,您将看到命令行前面有 "(myenv)" 的前缀,表示已成功激活虚拟环境。 现在,您可以在Anaconda虚拟环境中使用Python 3.7了。您可以安装和管理第三方库、运行Python脚本等等。如果需要退出虚拟环境,只需在命令行中输入 "conda deactivate" 命令即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值