1

我在 Windows 上安装了 Python 2.7 和 3.3,在 Linux 上安装了 Python 2.7 和 3.2mu。我将如何使用版本 2.X 或 3.X 编写能够在 Windows 和 Linux 上使用的 Python 脚本?

我正在寻找几行代码来检查当前操作系统是什么,并在脚本的其余部分所在的任何目录中使用 Python 3.X。

我在想某个地方:

if operating_system == Windows:
    run rest of script with C:\python_directory3.X\python
elif operating_system == Linux:
    run rest of script with /usr/bin/python3.X

这样的代码是否存在,或者我必须为两个操作系统制作不同的脚本?

4

2 回答 2

3

在 UNIX 系统上,Python 命令应按照 PEP-394 中的规定命名,因此使用 shebang 是最好的解决方案:

#!/usr/bin/env python2

或者

#!/usr/bin/env python3

根据需要,在文件顶部。

在 Windows 下,它的定义不太明确。从 3.3 版开始,启动器应该包含在 Python 中,如PEP-397中所述。但是,这对旧版本没有帮助。

如果您想确定在 Windows 下,许多人使用 py2exe、Cx_Freeze 或其他类似工具来生成包含解释器的可执行文件。在某些情况下,这可能是一个有效的解决方案。

一个好主意是在您的代码中添加一个检查(检查解释器的版本),并给出一个清晰、易于理解的消息,表明他们使用了错误的 Python 版本,也许还有一个关于如何解决该问题的链接问题。这不会神奇地解决任何问题,但这意味着如果所有其他方法都失败了,用户就有机会了解出了什么问题。

于 2013-05-24T17:36:11.530 回答
0

您可以使用 os 模块或 sys 模块识别运行脚本的操作系统。两者都显示不同的结果,但相似:

import os
os.name #"posix" for linux "nt" for windows
# or 
import sys
sys.platform # "linux2" for linux
于 2013-05-24T17:50:03.190 回答