当用户的系统上可能也安装了Python 2.7时,如何在用户的系统上运行Python 3脚本?

2024-10-01 16:25:06 发布

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

我正在尝试将Python3脚本作为可在Linux或Windows(msys)上使用的Makefile目标的一部分来运行。当系统可能也安装了Python2.7时,它调用Python3的正确方式是什么

似乎:

  • python script.py不起作用,因为在安装了Python2.7的系统上,它指向2.7版本

  • python3 script.py不起作用,因为如果只安装了Python 3,它会在Windows上命名可执行文件python.exe

  • py -3 script.py在Linux上不起作用,因为py分路只存在于Windows上

有没有一个很好的例子说明如何正确地做到这一点


Tags: py版本脚本目标linuxwindows系统方式
2条回答

如何实施您发现的内容:

which python3 python | head -1

或者换一种说法,试试python3,如果失败了,就退回到python

我认为没有一个通用的解决方案可以在没有用户合作的情况下开箱即用。通常的方法是在Makefile中指定一个合理的默认值,并允许用户覆盖它。也许像

PY3 = python3

py_ver := $(shell $(PY3) -c 'import sys; print(sys.version_info.major)')
ifneq ($(py_ver),3)
  $(error Need PY3 to point to a working Python 3 executable)
endif

# now use $(PY3) wherever you previously used python

现在,您可以使用make PY3=/usr/local/bin/python或其他任何工具,以不同的路径运行二进制文件

如果您使用Automake,则Python2和Python3都有内置宏;另见AM_PATH_PYTHON for python2 and python3

相关问题 更多 >

    热门问题