我的机器上安装了 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)。然后,您将从寻找该标签的人那里获得更多答案。