不要再走歪路了, 前面推文回答的基本都是乱讲 XD
虽然这个问题跟 Python 其实一点关系也没有, 所以会这样也是正常
如果你给 start 指令的参数不是绝对或相对路径, 而且是执行档
那么它会用 ShellExecuteEx 执行它
这个 Windows API 函式会参照 registry 这个路径下面的值
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths
如果你用 regedit 打开登录档, 会发现这下面包含了一堆 XXX.exe 名称
这就是用来参照 start 获得的执行档的真实位置
例如我的长这样(我没装 Google Chrome 所以这里用 Firefox 举例)
https://d.pr/i/dt6idm
当你输入 start firefox.exe 而当前路径找不到这个执行档时
Windows 会去找 HKLM\...\App Paths\firefox.exe\ 的值来用
因而可以正确执行, 不需要设定完整路径
这个 registry 值通常是在程式安装时设定
如果没设好, 有可能是当初安装时出错或毁损之类的
不过如果有问题, 那也没办法, 就不能用了
如果你要修复倒是不难, 打开 regedit 把该有的值填进去就好
不过如果你要保证每台电脑都一定能正确执行, 那大概就办不到
因为你实在没办法知道每台电脑的安装是不是都完全正确
话又说回来, 如果你只是想打开网页, 那其实根本不用这么麻烦
用 start <网址> 就可以直接开了, 根本不需要指定程式
只是它会用默认网页浏览器(所以可能不是 Google Chrome)
但是或许这也是好事
或者既然你是写 Python, 其实有个 module 叫 webbrowser
https://docs.python.org/3.6/library/webbrowser.html
这个就是用环境变量来找浏览器了