Cmd 提示符在没有 py 前缀的情况下执行代码,但忽略命令行参数(自动化无聊的东西)

Cmd prompt executes code without py prepended but ignores command line arguments (Automate the Boring Stuff)

运行 Python 3.9 in Windows 10. Python 通过 Windows 10 Store 安装。 PATH 环境中有正在执行文件的目录。

我是 运行 自动化无聊的东西第 12 章的以下代码,一个 google 地图启动器:

#! python3
# mapIt.py - Launches a map in the browser using an address from the
# command line or clipboard.

import webbrowser, sys, pyperclip
if len(sys.argv) > 1:
    # Get address from command line.
    address = ' '.join(sys.argv[1:])
else:
    # Get address from clipboard.
    address = pyperclip.paste()

webbrowser.open('https://www.google.com/maps/place/' + address)

当我打开 CMD 并输入:

mapIt.py Empire State Building

程序将执行,除了忽略来自 CMD 的 Empire State Building 参数,并在浏览器上启动 google 地图时使用剪贴板上的任何内容。在这里加上 py 给我 [Errno 2] No such file or directory

通过故障排除,我发现当我导航到 CMD 中的文件夹并尝试代码时,它仍然会忽略命令行参数,但是,当我导航到该文件夹​​并在前面加上 py 时,代码将按预期工作。所以这个:

C:\(file_directory)>py mapIt.py Empire State Building

将在搜索中发布 google 个包含帝国大厦的地图。

谁能阐明这里发生了什么?我确实安装了 Mu,想知道安装中包含的 Python 版本是否与命令提示符中调用的 python 混淆。

我发现了问题。

安装 Python 的多个版本时我的文件关联出现问题。

为了解决这个问题,我转到我的 python 脚本,右键单击它,选择“始终使用此应用程序打开”,然后导航到 C:\Windows\py.exe

现在,当我打开 CMD 并仅键入 mapIt Empire State Building 时,程序会启动我的浏览器并在 google 地图上搜索帝国大厦。

我怀疑这是一个注册表问题,但据我所知,它现在可以正常工作了。