我在Windows上安装了Python 2.7和3.3,在Linux上安装了Python 2.7和3.2mu。 我如何编写能够在Windows和Linux上使用的Python脚本,使用版本2.X或3.X?
我正在寻找可能会检查当前操作系统的几行代码,并在其余的脚本中使用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
这样的代码是否存在,或者我是否必须为两个操作系统制作不同的脚本?
答案 0 :(得分:3)
在UNIX系统上,Python commands should be named as prescribed in PEP-394,因此使用shebang是最佳解决方案:
#!/usr/bin/env python2
或
#!/usr/bin/env python3
视情况而定,位于文件的顶部。
在Windows下,它的定义不太明确。从版本3.3开始,a launcher应包含在Python中,如PEP-397中所述。但是,这对旧版本没有帮助。
如果您想在Windows下确定,许多人使用py2exe,Cx_Freeze或其他类似工具来生成包含解释器的可执行文件。在某些情况下,这可能是一个有效的解决方案。
一个好主意是在代码中添加一个检查(检查解释器的版本),并给出一个清晰,易于理解的消息,他们使用的是错误的Python版本,也许还有关于如何使用的链接解决这个问题。这不会神奇地解决任何问题,但这意味着如果所有其他方法都失败了,那么用户就有机会了解出了什么问题。
答案 1 :(得分:0)
您可以使用os模块或sys模块识别运行脚本的操作系统。两者都显示不同的结果,但相似:
import os
os.name #"posix" for linux "nt" for windows
# or
import sys
sys.platform # "linux2" for linux