Python 3.2与Python 2.7不兼容
我已经安装了Python 2.7(是用activepython安装的)。我想学习Python 3.2,所以我从python.org下载了它。
Python 2.7运行得很好,但当我尝试打开Python 3.2的开发环境时,它给我报了一个错误。
然后我看到一个发送错误的窗口,如果我用activepython安装Python 3.2,也会出现同样的错误。
我使用的是Windows XP专业版SP3 32位,SP2时也遇到过同样的错误……我该怎么解决呢?
编辑 @Zuljin
这是我第一次使用依赖关系查看器,你能帮我一下吗?
这是我看到的内容
这是什么意思?我已经有这些文件了……
3 个回答
看起来你把某个版本的 python.exe 或 pythonw.exe 和 *.py 或 *.pyw 文件类型关联在了一起,但你不太清楚具体是哪个。这种关联通常是在微软的“资源管理器”中设置的(我记得是在选项里)。
我认为这种方法并不可靠:
C:\Python32\Lib\idlelib\idle.pyw
因为这种方法会运行任何被分配给“pyw”扩展名的程序。可能是:
C:\Python32\pythonw.exe
或者
C:\Python26\python.exe
或者你的文件扩展名关联可能因为操作系统或错误的 PATH 环境变量设置而发生了变化。更好的做法是这样:
C:\Python32\pythonw.exe C:\Python32\Lib\idlelib\idle.pyw
这样你就明确告诉操作系统从特定路径运行 Python 可执行文件,并选择文件夹层级中的特定 Python 脚本。
你还可以尝试收集一些信息,只需:
python.exe -V
这将告诉你版本号。
你还可以做的事情是: 打开一个 DOS 命令提示符,输入:
set PATH=C:\Windows;C:\Windows\system32;C:\Python32
python.exe and note the version and whether is runs.
exit()
exit
一旦能正常工作,就检查你的 PATH。你可以使用这个 Python 脚本来收集信息。
如果你关闭了 WinXP 的查找文件功能(就像我一样),你可以使用这个脚本:
inpath.py 可以帮助你更好地理解。 像这样运行这个 Python 脚本:
- 进入 DOS 提示符
- 切换到你有可用 python.exe 版本的文件夹。
- 然后输入 python.exe inpath.py python* 其中 inpath 是这个测试/调试时在同一文件夹中的文件。
inpath.py 将搜索你的路径,查找所有在操作系统中被标记为“可运行”的文件,并且这些文件在你的“PATH”中符合 python*.* 的模式。
在Windows XP和Windows 7上,Python 2.x和3.x可以很好地共存,无论是32位还是64位系统。如果你先安装了ActiveState的Python版本,那么在安装python-3.2.2.msi时要小心。当你到达自定义python 3.2.2的界面时,记得勾选或取消勾选“注册扩展”这个选项,这样就不会注册扩展了。
到目前为止,我在不同的电脑上都是这样安装这两个版本的,没遇到过问题。
注意:检查一下你的环境变量。路径中应该只有python 2.7(如果你在安装这两个版本之前就安装过,可能路径中会有两个版本的路径。记得把python 3.2的路径删掉)。
编辑:从Ankit的帖子中我意识到,其实你可能是在尝试打开IDLE。如果你按照我的安装说明,当你从py3.2的idlelib文件夹调用idle.bat时,实际上会打开python 2.7的IDLE,因为这个调用在Windows路径中找到了python 2.7。为了能够在注册的python是2.7的情况下打开python 3.2的IDLE,我使用了一个修改过的.bat文件,基于分发版中的文件:
idle_stay.bat
@echo off
rem Working IDLE bat for Windows - Custom bat for py3k as secundary python
C:\Python32\pythonw C:\Python32\Lib\idlelib\idle.pyw %1 %2 %3 %4 %5 %6 %7 %8 %9
这个文件叫做idle_stay.bat
,是因为我把它放在了官方的idle.bat所在的文件夹里(C:\Python32\Lib\idlelib\idle_stay.bat
)。这样每次我卸载并重新安装新的python 3版本时,它就不会被覆盖。
我看到这里有很多回答。不过,我觉得你尝试运行的那个文件可能不太对。
C:\Python32\Pythonw.exe
这个文件不是你用来打开idle的那个。
请打开
C:\Python32\Lib\idlelib\idle.pyw