在Ubuntu20.04中的shebang
在Ubuntu20.04中使用Python。
Ubuntu 20.04发布了。我立刻玩了一下并进行了调查,发现标准安装中已经包含了Python3.8。但是,使用python关键字无法启动,需要使用python3来启动。通常情况下这不是问题,但是当想要使用shebang功能将其作为执行文件运行时就会遇到困难。现在该怎么办呢?为了解决这个问题,我进行了一些调查。
“shebang”的写法示例
我在进行了一些搜索之后,发现在Perl、Python和Ruby脚本中,有关正确shebang写法的信息。似乎有一种方法是通过启动/bin/sh,并使用exec命令来启动python。我稍微做了一些修改尝试。
\#!/bin/sh
""":" .
if [ -x python ] ; then
exec python "$0" ${1+"$@"}
else
exec python3 "$0" ${1+"$@"}
fi
"""
import sys
__doc__ = """
The above defines the script's __doc__ string. You can fix it by like this."""
def main():
print('exec ok')
for v in sys.argv:
print(v)
if __name__ == '__main__':
main()
总之,通过这样做,无论是在Python还是Python3上,都可以启动了。
……但是,我不太清楚是否有必要这样做(^^ゞ
CentOS8 – 这是一个选项
CentOS8没有预装Python/Python3,所以无法启动。
Yum/DNF似乎依赖于platform-python来启动,但如果要做到这一点,或许应该考虑使用虚拟环境(如venv)来运行,不知道这样想是否正确。
如果安装了python-is-python3软件包,它就会启动。↩
就是最前面的那一行#!/usr/bin/env python。↩
原本是处理没有/usr/bin/env的情况。↩
头部的”””:”有什么意思呢?↩