如何在同一个 Windows XP 机器上同时运行 python 2.6 和 3.0?

Posted

技术标签:

【中文标题】如何在同一个 Windows XP 机器上同时运行 python 2.6 和 3.0?【英文标题】:how to run both python 2.6 and 3.0 on the same windows XP box? 【发布时间】:2010-12-03 16:54:03 【问题描述】:

人们使用什么样的设置在同一台 Windows 机器上同时运行 python 2.6 和 python 3.0?

【问题讨论】:

【参考方案1】:

没问题,每个版本都安装在自己的目录中。在我的 Windows 机器上,我有 C:\Python26\C:\Python31\开始菜单 项目也不同。只需使用来自 Python 编程语言 Official Website 的标准安装程序,或来自 ActiveState 的准备安装发行版。

选择所需版本的直接方法是在命令行上明确命名。

C:\> C:\Python25\python ver.py
2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)]

C:\> C:\Python31\python ver.py
3.1.1 (r311:74483, Aug 17 2009, 17:02:12) [MSC v.1500 32 bit (Intel)]

ver.py 在哪里:

import sys
print (sys.version)

【讨论】:

好的。所以当我运行程序时,我只是在前面加上路径,对吧?像 c:/python26/python.exe myprog.py 你用 .py 扩展名做什么? 我听到了。我就是这样做的。问题在于扩展绑定。我希望 #!在 Windows 中工作。 > 我希望 #!在窗户工作。我能想到的两个选项: 为每个版本的 python 使用不同的扩展名(例如 foo.py3k 或 bar.py26) 创建一个简单的“python_selector.exe”来读取源文件 #!并运行适当的解释器。然后将所有 .py 文件与选择器相关联。 您可以查看 Windows ASSOC 和 FTYPE 命令来设置自定义文件类型(Python.File26、PYthon.File30),然后使用 bat 文件更改它们之间的 .py 关联。见bugs.python.org/issue4485 我做的一件事是使用 virtualenv (pypi.python.org/pypi/virtualenv)。我为每个项目设置了一个 virtualenv 环境,基于该项目所需的 Python 版本。然后我只执行 activate.bat 文件,它会适当地设置路径。【参考方案2】:

Virtualenv 是 Unix 和 Mac 平台上的首选解决方案。

virtualenv 是一个创建工具 隔离的 Python 环境。

要解决的基本问题是 依赖项和版本之一,以及 间接权限。想象你 有一个需要版本的应用程序 LibFoo 的 1 个,但另一个应用程序 需要版本 2。如何使用 这两个应用程序?如果你 将所有内容安装到 /usr/lib/python2.4/site-packages(或 无论您的平台标准是什么 位置是),很容易最终陷入 你无意中的情况 升级不应该的应用程序 升级。

或者更一般地说,如果你想怎么办 安装应用程序并离开它 是?如果应用程序有效,任何 更改其库或 这些库的版本可能会破坏 应用程序。

另外,如果无法安装怎么办 打包到全局站点包中 目录?例如,在共享 主持人。

我还没有尝试过,但是与在 Windows 中使用相关的文档的存在让我认为它现在可以在 Windows 上运行。

【讨论】:

好的,我想这就是我一直在等待的解决方案,【参考方案3】:

-您可以使用批处理文件以适当的版本启动。

-带有 pydev 的 Eclipse 允许您选择使用哪个版本启动。

-将 .py/.pyw 扩展名与您的首选版本重新关联。

【讨论】:

我想我将使用 ***.com/users/124312/zwergner 提到的 ftype 将 .py 与版本相关联【参考方案4】:

有趣,但我希望能够学习 3.0 语法(print())等但仍需要维护一些 2.5 和 2.6 代码..

Python 有 __future__ "Future statement definitions",这使得旧版本 Python 中的新功能可用,打印功能就是其中之一:

Python 2.6.1 (r261:67515, Jul  7 2009, 23:51:51)
>>> from __future__ import print_function
>>> print("Example", end=" Hurray!\n")
Example Hurray!

Python 3.0 的另一个重大变化是默认字符串变为 Unicode:

>>> from __future__ import unicode_literals
>>> type('abc')
<type 'unicode'>
>>> 'a'
u'a'

其他大多数现在是 Python 2.6 的一部分,因此不感兴趣(例如 with_statement)。我唯一没有提到的是from __future__ import braces 允许“C like”if() 大括号

【讨论】:

【参考方案5】:

你为什么要这样做? 3.0 中的所有内容都在 2.6 中,您可以通过 from __future__ import 使用 3.0 中的新功能。运行 2.6 直到你准备好升级到 3.0 的一切,然后升级。您不打算在同一台机器上拥有多个版本的 Python。如果你真的想,你可以指定替代安装目录,但我真的不明白这有多大的麻烦。

【讨论】:

有趣,但我希望能够学习 3.0 的语法(print())等但仍然需要维护一些 2.5 和 2.6 的代码... -1。尝试导入打印语句的 lack。或字典理解。 @Triptych Easy - from __future__ import print_function @dbr 我说缺少打印语句,而不是打印功能。

以上是关于如何在同一个 Windows XP 机器上同时运行 python 2.6 和 3.0?的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 7 机器上编写/编译的 .NET 4 程序无法在 XP 上运行

如何在 xp 和 windows 7 上运行 SWT 应用程序

如何使用VS 2013发布一个可以在Windows XP中独立运行的可执行文件

在 Windows 上使用 Jenkins 运行 Selenium 测试期间,如何在未实际登录机器时捕获屏幕截图?

如何从 Windows XP 的批处理文件中设置处理器关联?

从 ubuntu 机器远程运行 windows xp bat 脚本