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

标签 python linux windows version

我在 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

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

最佳答案

在 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 版本,也许还有一个关于如何使用的链接解决那个问题。这不会神奇地解决任何问题,但这意味着如果所有其他方法都失败了,用户有机会了解出了什么问题。

关于python - 您如何跨多个操作系统手动告诉 Python 在脚本本身中使用哪个版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16740574/

相关文章:

python - django.db.utils.IntegrityError : duplicate key value violates unique constraint, 而 4 行中有 2 行不同

python - Mechanize 提交和阅读响应

python - 如何在 Pandas 中使用 groupby].transform ('count' )时计算唯一值

windows - 用于查看特定端口的命令行

html - 电源外壳 : split HTML

python - PatchCollection 的 Matplotlib 颜色条覆盖颜色

linux - 如何在 expect shell 脚本中获取生成进程的退出代码?

linux - Linux下未经许可的tail命令

c - pthread_mutex_lock 需要很多时间

c# - 从 Windows 可执行文件中识别编译器版本