Windows 坚持将 .py 文件与错误版本的 Python 关联

Windows 坚持将 .py 文件与错误版本的 Python 关联

我的机器上安装了 Python 2.7 和 Python 3.3(我在 Windows 8 上)。

我希望 .py 文件默认使用 Python 3.3 打开。PATH 环境变量中唯一的 Python 路径是 3.3。但是,打开 .py 文件时,我发现它们被 Python 2.7 解释,即使我明确使用 Python 3.3 exe 打开它们(“打开方式”并选择 3.3 exe)。我还尝试使用 Windows 控制面板中的“设置关联”更改 Python.exe 版本。我不确定它是否改变了什么。无论我做什么,以下程序的输出都是2.7.3

import sys
print(sys.version)

如何强制 Windows 8 使用 Python 3.3 打开 .py 文件?

答案1

看来 Windows 没有检查可执行文件的整个路径!尝试将版本 2(分别为版本 3)的 python.exe 重命名为某个临时名称。然后与此名称关联。并将所有内容改回原样。

仅供参考,您可以检查文件关联:

C:\Users\shadowed>assoc .py
.py=Python.File

C:\Users\shadowed>ftype Python.File
Python.File="C:\Python27\python.exe" "%1" %*

答案2

更改shebang(#! python3)可能会有所帮助,但您会遇到一个问题:如果您的python脚本有参数,则在运行命令时它们将被截断

somepythonfile.py your_parameters

相信我,您只需使用“somepythonfile.py”并且无需任何参数即可运行 py.exe。

对我有用的方法是:运行应用程序http://www.nirsoft.net/utils/file_types_manager.html - 这是一个文件关联管理器。修复 python 文件的关联

"C:\Windows\py.exe" "%1" %*

代替

"C:\Windows\py.exe" "%1"

或者,设置

"C:\Python34\pythonw.exe" "%1" %*

明确地-匹配所需的版本并省略shebang行。

答案3

尝试添加#!python3到第一行。Python 3.3 引入适用于 Windows 的 Python 启动器.py与关联的c:\windows\py.exe。它默认启动最高版本的 Python 2。请参阅https://stackoverflow.com/a/17245543/1346705

答案4

您是否尝试过暂时卸载 Python 2.7?这可能会修复文件关联。我不确定,因为我对 Windows 8 并不熟悉,除了在别人的电脑上试用时学到的一点知识。我甚至不确定它是否能在 Windows 7 上运行,但如果你问我,这值得一试。

我还建议使用特定 Windows 版本的标签,而不是标准的“windows”标签。在这种情况下,我可能会同时使用这两个标签,因为文件关联在 Windows 版本之间变化不大。无论如何,至少使用正确的标签 (windows-8)。然后,您将从寻找该标签的人那里获得更多答案。

相关内容