Tôi cố chạy mã này bằng Google Cloud.
tín hiệu nhập khẩu
import sys
từ ngôn ngữ nhập google.cloud, ngoại lệ
# tạo ứng dụng khách Python API ngôn ngữ tự nhiên của Google Cloud
client = ngôn ngữ.LanguageServiceClient()
Nhưng nó đưa ra thông báo lỗi sau:
Traceback (most recent call last):
Tệp "analyse-comments.py", dòng 7, trong
client = ngôn ngữ.LanguageServiceClient()
Tệp "C:\Python27\lib\site-packages\google\cloud\lingu_v1\gapic\lingu_service_client.py", dòng 92, trong __init__
phạm vi = self._DEFAULT_SCOPES)
Tệp "C:\Python27\lib\site-packages\google\api_core\grpc_helpers.py", dòng 132, trong create_channel
thông tin xác thực, _ = google.auth.default(scopes=scopes)
Tệp "C:\Python27\lib\site-packages\google\auth\_default.py", dòng 283, theo mặc định
tăng ngoại lệ.DefaultCredentialsError(_HELP_MESSAGE)
google.auth.Exceptions.DefaultCredentialsError: Không thể tự động xác định thông tin xác thực. Vui lòng đặt GOOGLE_APPLICATION_CREDENTIALS hoặc
tạo thông tin xác thực một cách rõ ràng và chạy lại ứng dụng.
thông tin vui lòng xem
https://developers.google.com/accounts/docs/application-default-credentials.
Dòng 7 là phần này của mã
client = ngôn ngữ.LanguageServiceClient()
Tôi đã cài đặt pip trên google và cloud. Tôi đã tìm kiếm giải pháp trên Google nhưng không có giải pháp nào phù hợp với vấn đề mà tình huống của tôi cần giải quyết.
Lỗi bạn chia sẻ rõ ràng cho thấy có vấn đề với thông tin xác thực:
google.auth.Exceptions.DefaultCredentialsError: Không thể tự động xác định thông tin xác thực. Vui lòng đặt GOOGLE_APPLICATION_CREDENTIALS hoặc
tạo thông tin xác thực một cách rõ ràng và chạy lại ứng dụng.
nó mời bạn đến thăm Thiết lập xác thực Trang tài liệu có thêm thông tin về chủ đề này:
Để biết thêm thông tin, vui lòng xem https://developers.google.com/accounts/docs/application-default-credentials.
Vấn đề cụ thể ở đây là thư viện máy khách bạn đang sử dụng (google.cloud.ngôn ngữ
) đang cố gắng đặt trực tiếp biến môi trường Tìm thông tin xác thực trong GOOGLE_APPLICATION_CREDENTIALS để xác thực bằng tài khoản GCP của bạn
Nhưng nó không thể tìm thấy chúng. Để giải quyết vấn đề này, trước tiên bạn nên bắt đầu với Trang Tài khoản dịch vụ trong Bảng điều khiển Tải xuống khóa JSON cho tài khoản dịch vụ của bạn. (Nhấp vào ba dấu chấm ở bên phải và tạo khóa JSON mới), lưu trữ cục bộ và trỏ tới nó bằng GOOGLE_APPLICATION_CREDENTIALS như giải thích trong tài liệu , tùy thuộc vào phân phối hệ điều hành của bạn.
Khi biến môi trường này được điền với đường dẫn thư mục chính xác cho khóa JSON, thư viện máy khách bạn đang sử dụng sẽ có thể xác thực chính xác và lỗi sẽ biến mất.
Ngoài ra, nếu quy trình này không hiệu quả với bạn (tôi không hiểu lý do tại sao), bạn có thể chuyển tệp thông tin xác thực đến đối tượng bạn đang khởi tạo một cách rõ ràng Ngôn ngữServiceClient()
, như hình dưới đây, xem để biết chi tiết Tài liệu tham khảo API cho API ngôn ngữ tự nhiên :
từ ngôn ngữ nhập google.cloud
từ dịch vụ nhập google.oauth2_account
tín dụng = service_account.Credentials.from_service_account_file('path/key.json')
client = ngôn ngữ.LanguageServiceClient(
thông tin xác thực=tín dụng,
)
Tôi là một lập trình viên xuất sắc, rất giỏi!