你好,我有一個磚賬戶在Azure上,和這樣做的目的是比較不同的圖像從Azure標簽服務,質量,通過相應的AWS API調用,Python筆記本。我GCP願景API調用有問題,特別是與憑證:據我了解,一個必要步驟是設置“GOOGLE_APPLICATION_CREDENTIALS”環境變量在我磚筆記本之類的
操作係統。環境[' GOOGLE_APPLICATION_CREDENTIALS '] = ' / folder1 / credentials.json '
' / folder1 /憑證。json的是我的筆記本的地方尋找json文件和憑證(筆記本是在同一個文件夾/ folder1 / notebook_api_test)。
我被調查這條道路工作空間- >複製文件路徑磚的web頁麵。但是這種方法不起作用,當執行單元,我得到這個錯誤:
DefaultCredentialsError:文件/ folder1 /憑證。json文件不存在。
什麼是正確的方式處理憑證訪問google願景API從Azure磚筆記本嗎?
好的,這裏有一個竅門:在我的例子中,GCP憑證文件存儲在筆記本工作區存儲,這是不可見的os.environ ()命令。
所以解決辦法是讀這個文件的內容,並將其保存到集群存儲連接到筆記本,它是在創建集群和集群時抹去了(所以我們需要重複這個過程每次重新創建集群)。根據這個鏈接,我們可以閱讀憑證json文件的內容存儲在筆記本的工作區
張開(' / Workspace / folder1 / cred.json '): #注意,我需要一個完整路徑,因為某些原因內容= f.read ()
然後根據他的醫生,在另一個地方,我們需要將其保存在一個新的文件(名稱相同的在我的例子中,cred.json),即在集群存儲連接到筆記本(可見os-related功能,像os.environ ()),
fd = os.open(“信譽。json”, os.O_RDWR | os.O_CREAT) ret = os.write (fd, content.encode()) #需要添加.encode(),或將TypeError: bytes-like對象是必需的,而不是“str”os.close (fd)
後,我們可以繼續設置一個環境變量,GCP要求身份驗證:
操作係統。環境[' GOOGLE_APPLICATION_CREDENTIALS '] =’。/ cred.json '
然後API調用應該很好,工作沒有DefaultCredentialsError。
好的,這裏有一個竅門:在我的例子中,GCP憑證文件存儲在筆記本工作區存儲,這是不可見的os.environ ()命令。
所以解決辦法是讀這個文件的內容,並將其保存到集群存儲連接到筆記本,它是在創建集群和集群時抹去了(所以我們需要重複這個過程每次重新創建集群)。根據這個鏈接,我們可以閱讀憑證json文件的內容存儲在筆記本的工作區
張開(' / Workspace / folder1 / cred.json '): #注意,我需要一個完整路徑,因為某些原因內容= f.read ()
然後根據他的醫生,在另一個地方,我們需要將其保存在一個新的文件(名稱相同的在我的例子中,cred.json),即在集群存儲連接到筆記本(可見os-related功能,像os.environ ()),
fd = os.open(“信譽。json”, os.O_RDWR | os.O_CREAT) ret = os.write (fd, content.encode()) #需要添加.encode(),或將TypeError: bytes-like對象是必需的,而不是“str”os.close (fd)
後,我們可以繼續設置一個環境變量,GCP要求身份驗證:
操作係統。環境[' GOOGLE_APPLICATION_CREDENTIALS '] =’。/ cred.json '
然後API調用應該很好,工作沒有DefaultCredentialsError。