解決したい問題
from subprocess import run run(["python", "-m", "hoge.fuga"])
# hoge/fuga.py import numpy as np
を Cloud Build上で実行しようとすると
ModuleNotFoundError: No module named 'numpy'
などと言われてしまう
解決方法
こうする
import sys from subprocess import run run([sys.executable, "-m", "hoge.fuga"])
解説
sys.executable
は Python インタプリタの実行ファイルの絶対パスを示す文字列となっている
https://docs.python.org/ja/3/library/sys.html#sys.executable
リンク
Cloud Functions については、 https://stackoverflow.com/questions/54938099/how-to-run-a-subprocess-inside-google-cloud-function-in-python の回答がまさにそれ。python3
を使うという手もあるらしいが、現時点(2024年3月)ではうまくいかなかった