4

python命令通常映射到跨不同操作系统的最新 Python 2.x 编译器。但是,是否有这样的标准方法来调用 Python 3.x 解释器(安装任何或最新版本)?

...因此可以将您的 Python 3.x 兼容脚本运行为:

 python3 yourscript.py

作为奖励,是否还存在调用 virtualenv 命令为 Python 3 创建本地安装的跨平台方法?

  • Ubuntu 似乎提供了 python3 命令,似乎没有为 Python 3.x 提供预打包的 virtualenv

  • OSX(Macports、BSD?)更喜欢 python-3.2、python-3.1 命令,提供 virtualenv-3.2、virtualenv-3.1

目前我正在尝试一些试错法来完成工作

4

2 回答 2

1

对此没有完整的解决方案。客户端可能未安装 Python3。那你会怎么做?您可以先在脚本执行时检查 Python 版本。

print sys.version_info
sys.version_info(major=2, minor=7, micro=2, releaselevel='final', serial=0)

如果执行的 Python 不是 Python3,那么您可以要求用户安装它或使用 Python3 解释器调用您的脚本等。当用户使用 Python2 调用您的脚本时,您可能决定根本无法运行。有很多方法(常见问题解答、系统要求等)通知用户脚本需要 Python3,然后让他们处理该问题,而不是您尝试在代码中这样做。

我已经在 Microsoft .Net 运行时中看到了这一点。当用户没有所需的 .Net 版本时,程序会在继续之前要求用户安装它,并将用户指向一个 URL。

另一个建议是,在 Linux 系统上,您可以通过将其添加到脚本顶部来更喜欢 Python3(如果已安装):

#!/usr/local/bin/python3

当然,您必须确定该路径存在。您也可以使用env更灵活的方式来执行此操作。

于 2012-04-15T14:43:11.593 回答
1

在阅读PEP 394 The "python" Command on Unix-Like SystemsPEP 397 Python launcher for Windows之后,我想你最好的选择是#! /usr/bin/python3在脚本中使用 shebang 并指导 Windows 用户安装和使用Python 启动器py命令)而不是python命令。

于 2012-04-15T17:40:43.693 回答