![从“运行”提示符运行 Python 脚本](https://linux22.com/image/1455664/%E4%BB%8E%E2%80%9C%E8%BF%90%E8%A1%8C%E2%80%9D%E6%8F%90%E7%A4%BA%E7%AC%A6%E8%BF%90%E8%A1%8C%20Python%20%E8%84%9A%E6%9C%AC.png)
我以为这会很容易,但我已经挣扎了一段时间了。
我的 Windows 计算机上有一个名为“myscript.py”的 Python 脚本。我将其放在 PATH 上的文件夹中,并且我已将“.py”扩展名添加到 PATHEXT 环境变量,因此我只需执行“myscript”(而不是键入“myscript.py”)即可从命令提示符运行脚本。这工作正常。
但是,当我从“运行”提示符 (Windows-R) 启动脚本时,似乎无法获得相同的行为。如果我输入“myscript.py”,它可以正常工作,但只输入“myscript”则不行 - 我收到错误消息Windows cannot find 'myscript'...
。
我本来以为“运行”提示无法识别 PATHEXT 变量,但其他类型的程序似乎可以工作 - 我可以从运行提示运行 .bat(Windows 批处理脚本)和 .exe(Windows 可执行文件)而不需要任何扩展。
为什么没有扩展的 Python 脚本无法从运行提示符运行?
答案1
并没有真正回答我的问题,但我确实找到了一个令人满意的解决方法:我创建了一个快捷方式(右键单击 Windows 资源管理器窗口中的空白区域 -> 新建 -> 快捷方式),并将快捷方式的目标设置为我的脚本。一旦该快捷方式位于我路径上的文件夹中,我就可以仅使用快捷方式的名称(无需任何扩展名)来调用我的脚本。这允许将命令行参数传递给 Python 脚本而无需进一步修改。
Anaksunaman 提供了另一种选择 - 为脚本创建一个 .bat/batch 脚本包装器。除非您的 Python 脚本需要使用参数,否则这种方法很有效,在这种情况下,传递参数将需要更多努力。
答案2
这不是答案,您可能已经将此视为解决方案,因此这确实适用于其他人,但使用一行.bat
文件调用 Python 脚本效果很好。当然,您可以命名批处理文件myscript.bat
,它无需扩展名即可运行.bat
。