如何让Python 2.x和3.x共存?

10

6
我相信Python 2和Python 3可以和平共存。你有什么问题吗?使用的是哪个操作系统? - Rosh Oxymoron
2
我在我的Windows电脑上安装了Python 2.5、2.6、2.7、3.0、3.1和3.2。有什么问题吗? - David Heffernan
如果你安装了多个版本,你可以显式地给它们命名不同的版本号。例如,当我调用python时,我的(Linux)机器运行的是2.4版本,但我也可以只说python2.5来运行2.5版本。 - user812786
1
为了获得一个干净、官方的解决方案,请安装Python 3.3(https://dev59.com/nnRC5IYBdhLWcg3wUfJ2#13297878),其中包括Windows版的Python启动器(http://blog.python.org/2011/07/python-launcher-for-windows_11.html)。 - Nick T
@akaGrim 你用的是哪个操作系统?Linux?Windows?Mac? - jpaugh
5个回答

7

我不确定我理解你的问题,但我会尝试回答。我也假设你使用的是Windows系统。

很简单--只需同时安装两个版本。它们将安装到不同的目录,创建不同的开始菜单文件夹等等。我还建议在2.7版和3.2版中安装PythonWin编辑器的PyWin32模块。

如果你想编写一个适用于Python 2或Python 3的脚本,请参阅http://docs.python.org/library/2to3.html


1
我在Windows 8电脑上都安装了,但是当我在命令行上运行python时,它会给我这个错误信息:Fatal Python error: Py_Initialize: unable to load the file system codec File "C:\Python27\lib\encodings\__init__.py", line 123 raise CodecRegistryError,\ ^ SyntaxError: invalid syntax。显然这是在运行python3,然后由于某种原因它运行了python2的东西并导致了错误。我该如何将它们分开,同时又能够指定python的位置?就像能够切换一样。 - CMCDragonkai

1
wget  <python download url>
tar xfvz Python-X.Y.Z.tar.gz
cd Python-X.Y.Z
configure --prefix=/path/to/python-x.y.z
make install

0

你没有指明你所使用的操作系统。我的经验是,在同一台计算机上安装多个Python版本通常不会出现问题。例如,在Ubuntu上,只需安装2.x和3.x软件包(使用sudo apt-get install或Ubuntu软件中心):

aix@aix:~$ python2.6
Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

aix@aix:~$ python3
Python 3.1.2 (release31-maint, Sep 17 2010, 20:27:33) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

我甚至在同一台机器上安装了第三个版本(一个EPD构建):

aix@aix:~$ python2.7
Enthought Python Distribution -- www.enthought.com
Version: 7.0-2 (64-bit)

Python 2.7.1 |EPD 7.0-2 (64-bit)| (r271:86832, Nov 29 2010, 13:51:37) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

0

Python 2对Python 3的某些功能支持有限,但在Python 2. >= 6中可以使用__future__模块和py2to3进行转换,同时也可以使用py3to2将Python 3转换为Python 2. >= 6(在我看来这种方式非常有限),但对于很大一部分代码而言,它们根本无法正常工作。

随着生成器的引入(使得Python 3中的某些函数调用在2.x中无法正常工作),许多主要框架还没有适配Py3k。比如Django,如果我没记错的话,Hg仍然在Python 2中。


0

这要看你想做什么。你可以让它们共存,因为3.2是向后兼容的。现在你可以在计算机上安装两个版本:3.2和2.7,但不幸的是,3.2必须在IDLE中使用...唉...安装两个版本,然后根据你想使用哪一个,在IDLE中运行其中一个。

如果你想要更稳定的版本,可以选择2.7(我自己做过不同的选择,但如果你遇到问题,2.7会得到更多支持)。

如果你想要更前沿的东西,可以选择3.2。你选择哪个都可以与几乎所有的东西一起使用。如果不能,再等一个月或两个月,其他人就会跟上。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接