我最近在我的电脑上安装了Python3.3和Python2.7(Windows7,32位)。Python3.3允许您在.py文件的顶部添加一个“shebang行”,这样当您执行这些文件时,它可以选择使用哪个Python版本。因为Pyscripter不能识别这个“shebang行”,我编写了一个程序,它读取.py文件的第一行,然后用相应的参数在Pyscripter中打开它。
看起来像这样:#!/usr/bin/env python2.7
from sys import argv
from os import system
if len(argv)>1:
file = open(argv[1])
shebang=file.readline()
if shebang.split()[1] in {'python2','python2.7'}:
system(r'C:\Python27\PyScripter.exe --python27 "'+argv[1]+'"')
elif shebang.split()[1] in {'python3','python3.3'}:
system(r'C:\Python33\PyScripter.exe --python33 "'+argv[1]+'"')
else:
system(r'C:\Python27\PyScripter.exe --python27')
file.close()
exit()
然后,我使用py2exe编译程序,并选择is作为.py文件的标准操作。当我现在打开一个.py文件时,PyScripter会使用正确版本的python打开该文件,但当我试图保存该文件时,它会显示:
^{pr2}$
用于打开PyScripter的编译程序仍在运行,但即使我杀死它,它仍然会带来消息。同样的事情发生在命令行.exe程序打开的窗口。如果我试图在Windows资源管理器中删除/重命名/移动该文件,它会说我不能这样做,因为该文件当前正被使用PyScripter.exe.
有人知道怎么解决这个问题吗?在
打开PyScripter的程序是python2.7,因为我没有py2exeforpython3。在