如何控制双击文件时运行的Python版本?

10 投票
4 回答
4934 浏览
提问于 2025-04-17 10:58

有没有办法控制双击一个.py文件时运行哪个版本的Python?在命令行和像Eclipse这样的环境中,我可以控制运行的版本。但是双击时我就不太确定了。

我安装了2.6和2.7两个版本。2.6是为了某些特定的应用,而我想把2.7设为默认版本。我已经把"C:\Python27"添加到了PATH环境变量中,这在命令行中运行得很好。在C:\path\to\some\file>python someFile.py会用2.7来运行这个文件。但是如果我从资源管理器双击同一个文件,它却用2.6来运行。怎么才能让它用2.7来运行呢?

4 个回答

3

你可以使用 ASSOCFTYPE

assoc .py=pyfile
ftype pyfile=c:\Python27\python.exe %1
8

在Windows系统上,你需要修改文件关联,比如通过右键点击文件,然后选择 打开方式...选择默认程序,或者通过控制面板的文件夹设置来进行修改。你可以通过浏览按钮找到你想要的python.exe,从而选择不同的Python版本:

enter image description here

另外,你也可以在命令行中通过输入以下命令来更改关联:

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

注意,这需要管理员权限。如果你的电脑启用了用户账户控制(UAC),你需要在开始菜单中右键点击cmd,选择 以管理员身份运行

在支持freedesktop.org的桌面环境中,你可以使用xdg-mime来配置文件关联。

在基于debian的系统中,你可以使用update-alternatives来更改默认的Python版本。在所有系统中,你也可以通过创建符号链接,将Python指向正确的实现,像这样:

$ sudo ln -sf python2.7 /usr/bin/python

如果文件被标记为可执行的,并且它的开头有 #! 和解释器的名称,那么它也可以直接从命令行或图形界面运行:

#!/usr/bin/env python

如果你只想为你的程序选择特定的Python版本,可以用以下其中一行来启动你的Python程序:

#!/usr/bin/env python2.7
#!/usr/bin/python2.7
4

好的,我找到了Python启动器,它正好满足我的需求。你可以在这里下载。安装这个后,我在右键菜单中更改文件关联时,出现了“Windows的Python启动器(GUI)”这个选项。

添加下面这一行

#!/usr/bin/python2.7

可以强制脚本在2.7版本下运行。

这样做非常好,因为我可以控制运行的Python版本,而用户根本不需要知道。也不需要使用bat文件,或者拖到快捷方式上等等。简单明了,最重要的是,避免了用户出错的可能。

撰写回答