如何跨多个操作系统手动告诉Python在脚本本身中使用哪个版本?

2024-06-01 06:43:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Windows上安装了python2.7和3.3,Linux上安装了python2.7和3.2mu。 如何使用2.X或3.X版本编写一个可以在Windows和Linux上使用的Python脚本?在

我在寻找几行代码来检查当前的操作系统是什么,并在脚本的其余部分使用python3.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

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


Tags: ofrun代码版本脚本restiflinux
2条回答

可以使用OS module或sys module标识运行脚本的操作系统。两者的结果不同,但相似:

import os
os.name #"posix" for linux "nt" for windows
# or 
import sys
sys.platform # "linux2" for linux

在UNIX系统上,Python commands should be named as prescribed in PEP-394,因此使用shebang是最好的解决方案:

#!/usr/bin/env python2

或者

^{pr2}$

在你的文件的最上面。在

在Windows下,它的定义就不那么明确了。由于版本3.3,a launcher应该包含在Python中,如PEP-397中所述。然而,这对旧版本没有帮助。在

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

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

相关问题 更多 >