我正在分发一个python程序,并收到抱怨说,在链接/usr/bin/python到python3的环境中,人们必须编辑shebang行或使用python2显式调用脚本。我可以将python2写在shebang行中,但我担心不兼容。
是否存在于每个(或至少每个Linux)环境中?中。
我正在使用自动工具,所以我也欣赏自动工具魔术提示。
发布于 2013-10-04 04:04:46
我发现/usr/bin/env不是一个完美的粒级Python检测器。然而,我刚刚发现将AM_PATH_PYTHON限制在主要版本2是可能的。
查看您的aclocal.m4文件中的变量"_AM_PYTHON_INTERPRETER_LIST“。在我的Mac环境中,Python二进制文件的列表如下所示:
m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
[python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7 dnl
python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0])如果您在紧接AM_PATH_PYTHON之前发出此调用来调整列表,则可以限制选中的Python二进制文件。因此,这实际上将您限制为python2.6+:
m4_define_default([_AM_PYTHON_INTERPRETER_LIST],[python2 python2.7 python2.6])
AM_PATH_PYTHON(2.6)发布于 2013-07-26 11:43:07
几乎每个linux发行版都存在Python2二进制文件。但是,它不必被命名为"python“,并且位于/usr/bin/python -例如。在Arch上,Linux /usr/bin/python指向python3.3。获得这个二进制文件最安全的方法是/usr/bin/env python2,因为env二进制文件几乎总是在这里。只需输入第一行可执行文件:
#!/usr/bin/env python2
"""rest of yours python code here..."https://stackoverflow.com/questions/17878054
复制相似问题