如何设置Anaconda指定环境Python.exe为.py文件默认打开程序?
解决Anaconda环境下Python脚本默认解释器切换问题
问题场景
使用Anaconda3做项目开发时,需要指定虚拟环境而非base环境运行Python脚本,但直接把.py文件的默认打开程序设为anaconda3\envs\env1\python.exe后,运行脚本时终端依然显示用的是base环境的Python,导致双击或回车运行自动化脚本无法使用目标环境。
解决方案:基于Shebang的Batch中转脚本
写一个Batch脚本作为.py文件的默认打开程序,脚本会读取Python脚本首行的Shebang指令,自动匹配对应的Anaconda虚拟环境解释器;如果没有有效Shebang,就默认用base环境。
实现脚本
@echo off setlocal enableExtensions disableDelayedExpansion :: 获取脚本首行内容 set /p text=< "%~1" :: 解析Shebang行的前两个字段 for /f "tokens=1-2 delims= " %%a in ("%text%") do ( set shebang=%%a set env=%%b ) :: 判断是否为有效Shebang行 if not %shebang:~0,2%==#! ( set env= ) :: 确定要使用的Python解释器路径 if not [%env%]==[] ( :: 虚拟环境解释器 set PythonEnv=C:\Users\%USERNAME%\anaconda3\envs\%env%\python.exe ) else ( :: base环境解释器 set PythonEnv=C:\Users\%USERNAME%\anaconda3\python.exe ) :: 执行目标Python脚本 call %PythonEnv% "%~1" endlocal goto :eof
使用步骤
- 将上述代码保存为
conda-run-script.bat(文件名可自定义),放在固定路径(比如Anaconda安装目录下)。 - 右键任意.py文件 → 属性 → 打开方式 → 更改 → 点击更多应用 → 在这台电脑上查找其他应用,选中刚才保存的
conda-run-script.bat。 - 编辑Python脚本首行添加Shebang指令,格式为
#!/usr/bin/env 环境名,比如要使用env1环境,就写:#!/usr/bin/env env1 print("Hello from env1!") - 双击或回车运行该.py脚本,就能自动用指定的Anaconda虚拟环境执行。
内容的提问来源于stack exchange,提问作者Marcos
相关产品推荐
相关产品推荐

