在Cygwin上安装Python 3.0

问题

使用Cygwin将Python 3.0与Python 2.x一起安装的正确方法是什么?

笔记

我已经有一个Cygwin的工作副本,Python 2.x安装在Cygwin( /lib/python2.x ,而不是c:\python2.x )。

另外,我希望能够通过将python指向Python 2.x来保存现有的依赖关系,从而分别调用python 3(并且只是有意识地)。 我想用python30或者其他的select。

任何指向这个问题的指南将非常感激。 我似乎无法在cygwin站点或python.org上find一个。

Python 3.0源代码的标准make install目标不会安装python二进制文件。 相反,在最后安装打印

 * Note: not installed as 'python'. * Use 'make fullinstall' to install as 'python'. * However, 'make fullinstall' is discouraged, * as it will clobber your Python 2.x installation. 

所以不要担心

如果您想轻松删除整个安装,请执行configure --prefix=/usr/local/py3

截至昨天(2012年7月25日星期三), Python 3.2.3包含在标准的Cygwin安装程序中 。 再次运行Cygwin的setup.exe (如果需要,可以从cygwin.com下载),你应该可以像选择其他软件包一样选择和安装它。

这将作为python3安装,将任何现有的2.x安装到位:

 $ python -V Python 2.6.8 $ python3 -V Python 3.2.3 $ ls -l $(which python) $(which python3) lrwxrwxrwx 1 me Domain Users 13 Jun 21 15:12 /usr/bin/python -> python2.6.exe lrwxrwxrwx 1 me root 14 Jul 26 10:56 /usr/bin/python3 -> python3.2m.exe 

要以非介入的方式使用Python 3,如果您还没有,请在用户主目录中创建一个名为“.bash_profile”的文件。

设置一个指向你的Python 3安装的别名。 在我的Windows机器上,这看起来像这样:

 alias python3=/cygdrive/d/apps/Python31/python export python3 

根据安装位置来调整路径,如果在Windows上,请注意确保使用的是UNIX换行符,否则会得到如“bash:$'\ r':command not found”的消息。

您现在应该可以使用“python3”命令,而且您还没有修改Cygwin附带的Python版本。

在Perl世界中,我总是安装我自己的,前缀为:

 ./configure --prefix=/usr/local/perl/5.10.0 

我从来不想处理任何perl随我的操作系统,因为我不想为它安装库,并可能弄糟在操作系统中编写的脚本。

我为Cygwin做了同样的事情,因为它能够安装我自己的模块更好,而不用担心Cygwin更新会将其垃圾。

如果当我学习Python(我想),我打算做同样的事情。

这样我就可以将各个应用程序从一个版本升级到另一个版本。

对于真正严重的应用程序(比如一个主要的网络应用程序),我甚至可以做一个专用于应用程序的用户拥有的独立安装。

而不是从命令行调用python就像这样调用python3:

 python3 script1.py