pythonの環境を確認
$which python
/home/[user]/.pyenv/shims/python
pyenvで管理されているpythonにパスが通っている。
$python -V
Python 3.7.7
バージョンは3.7.7
sudoで実行したときの挙動を確認する
print_python_version.py
import platform
print(platform.python_version())
pythonのバージョンがプリントされるスクリプト
$python print_python_version.py
3.7.7
一般ユーザーとして実行する。pyenvのpythonで実行されている。
$sudo python print_python_version.py
2.7.16
rootユーザーの権限で実行する。pythonのバージョンが3.7.7でない。
$sudo which python
/usr/bin/python
システムのpythonで実行されている。
実行するpythonをshebangで明記する
print_python_version_shebang.py
# !/home/[user]/.pyenv/shims/python
import platform
print(platform.python_version())
chmod +x print_python_version_shebang.py
実行権限を与える。
$./print_python_version_shebang.py
3.7.7
一般ユーザーとして実行する。pyenvのpythonで実行されている。
$sudo ./print_python_version_shebang.py
3.7.7
rootユーザーの権限で実行する。pyenvのpythonで実行されている。
まとめ
shebangで使用したいpythonのパスを明記すれば解決した。