Ubuntu20.04でのPython
Ubuntu 20.04が出ました。
早速遊んで調査してみたところ、標準インストールではPython3.8が入るようです。
ですが、pythonじゃ起動しません、python3で起動します。1
普通は困らないのですが、shebang2の機能を使って実行ファイルとして起動させたいときはちょっと困ります。
さて、どうしよう?と言うことで少し調べてみました。
shebangの書き方例
いろいろと検索してみたら、Perl, Python 及び Ruby スクリプトにおける正しいshebangの書き方てのがありました。
/bin/shを起動してexecでpythonを起動させる方法3みたいです。4
これをちょっといじってみました。
\#!/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あたりの仮想環境で動くようにすれば良かったのに、と思わなくもありません。