如何解决 python not found on ubuntu and gcloud exec-wrapper

How to solve python not found on ubuntu and gcloud exec-wrapper

我似乎无法 运行 python3 manage.py makemigrations gcr.io/google-appengine/exec-wrapper。它总是声称 python:未找到。它已安装在 docker 映像中。 这是步骤

- id: 'migrate'
      name: 'gcr.io/google-appengine/exec-wrapper'
      args: ['-i', 'gcr.io/${_PROJECT_ID}/${_SERVICE}',
             '-s', '${_PROJECT_ID}:${_REGION}:${_INSTANCE_NAME}',
             '-e', '_PROJECT_ID=${_PROJECT_ID}',
             '-e', 'SECRET_KEY=${_SECRET_KEY}',
             '--', 'sh','.cloudbuild/django_migrate.sh']

错误本身表明,当您使用此处提供的构建步骤提交云构建作业时,未找到 python。 首先检查 python 是否通过 运行ning 命令安装: python3 –version / python –version 如果您得到版本 3.x 的输出,那么 python3 已成功安装,如果您得到低于 python3.x 的输出,那么您需要升级您的 [=36] =] 版本到 python3.

您已将此 GitHub repo 用作构建的来源。我预测问题出在构建步骤的最后一行。 '--' 应该是你想要 运行 的命令,在你的情况下它应该是 python3 manage.py makemigrations(数据库迁移),你使用的 '--', 'sh','.cloudbuild/django_migrate.sh' 与 GitHub 中的相同回购 here.

cloudbuild/django_migrate.sh 是一个包含以下命令的脚本:

python manage.py 迁移,
python manage.py 加载数据样本数据,
python manage.py collectstatic –noinput
但不是 python3 manage.py makemigrations。因此,当您 运行 将脚本作为构建作业的最后一步时,它可以正常构建,但无法识别 python3 manage.py makemigrations 命令,因为您的命令中既没有指定它构建步骤也不在您的 sh 脚本中。

尝试使用以下配置:

steps: 
- id: 'migrate' 
name: gcr.io/google-appengine/exec-wrapper 
args: 
[ '-i', # The image you want to connect to the db from 
'gcr.io/${_PROJECT_ID}/${_SERVICE}’,
 '-s', # The postgres instance 
'${_PROJECT_ID}:${_REGION}:${_INSTANCE_NAME}’,
 '-e', # Get your secrets here... 
'GCLOUD_ENV_SECRET_NAME=${_GCLOUD_ENV_SECRET_NAME}', 
 '--', # And then the command you want to run, in my case a database migration 
'python3', 'manage.py', 'makemigrations', 
]