Flask 使用apache2和google云存储时出现内部服务器错误

Flask 使用apache2和google云存储时出现内部服务器错误,flask,apache2,google-cloud-storage,digital-ocean,Flask,Apache2,Google Cloud Storage,Digital Ocean,所以我设法把所有东西都连接好了。谷歌和安装apache2的路径似乎运行得很好。但是我遇到了一个内部错误;/在服务器中。在函数hello中 storage\u client=storage.client()导致错误 在功能测试中 storage\u client=storage.client() 结果成功了,python能够找到secret.json 这对我来说很奇怪 #__init__.py code from flask import Flask from google.cloud imp

所以我设法把所有东西都连接好了。谷歌和安装apache2的路径似乎运行得很好。但是我遇到了一个内部错误;/在服务器中。在函数hello中

storage\u client=storage.client()
导致错误

在功能测试中

storage\u client=storage.client()
结果成功了,python能够找到secret.json 这对我来说很奇怪



#__init__.py code
from flask import Flask
from google.cloud import storage

app = Flask(__name__)

@app.route("/")
def hello():
    #Does not work here
    storage_client= storage.Client()
    return "error"

#Works without @app.route("")
def test():    
    storage_client= storage.Client()
    # successfuly connects and prints
    print(storage_client) 

if __name__ == "__main__":
    app.run()

以下是日志,似乎flaskapp.wsgi中有错误,但我不太确定

mod_wsgi (pid=23303): Target WSGI script '/var/www/html/FlaskApp/flaskapp.wsgi' cannot be loaded as Python module.


mod_wsgi (pid=23303): Exception occurred processing WSGI script '/var/www/html/FlaskApp/flaskapp.wsgi'.

Traceback (most recent call last):
File "/var/www/html/FlaskApp/flaskapp.wsgi", line 7, in <module>
from FlaskApp import app as application
File "/var/www/html/FlaskApp/FlaskApp/__init__.py", line 5, in <module>
 storage_client = storage.Client()
File "/usr/local/lib/python2.7/dist-packages/google/cloud/storage/


raise exceptions.DefaultCredentialsError(_HELP_MESSAGE)
 DefaultCredentialsError: Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or ex$

mod_wsgi(pid=23303):目标wsgi脚本“/var/www/html/FlaskApp/FlaskApp.wsgi”不能作为Python模块加载。
mod_wsgi(pid=23303):处理wsgi脚本“/var/www/html/FlaskApp/FlaskApp.wsgi”时发生异常。
回溯(最近一次呼叫最后一次):
文件“/var/www/html/FlaskApp/FlaskApp.wsgi”,第7行,在
从FlaskApp导入应用程序作为应用程序
文件“/var/www/html/FlaskApp/FlaskApp/__init__.py”,第5行,在
storage\u client=storage.client()
文件“/usr/local/lib/python2.7/dist-packages/google/cloud/storage/
引发异常。DefaultCredentialsError(\u帮助\u消息)
DefaultCredentialsError:无法自动确定凭据。请设置GOOGLE\u应用程序\u凭据或$

您需要为您计划使用的服务帐户提供凭据。正如您在错误中看到的,您可以为此设置谷歌应用程序凭据

为此,请完成以下步骤:

  • 为您计划使用的服务帐户下载JSON格式的
  • (在LinuxMacOS上)运行:
    export GOOGLE\u APPLICATION\u CREDENTIALS=“[PATH-TO-THE-KEY]”
  • (在Windows):
    $env:GOOGLE\u应用程序\u凭据=“[PATH-TO-THE-KEY]”

或者,您可以在代码中输入服务帐户密钥:

storage_client = storage.Client.from_service_account_json(
        'service_account_key.json')

虚拟机是在本地还是在GCP上?否;/@guillaumeblaquiere
storage_client = storage.Client.from_service_account_json(
        'service_account_key.json')