7

Tôi đang cố chạy mẫu được cung cấp tại đây https://developers.google.com/analytics/devguides/reporting/core/v3/quickstart/service-py để ủy quyền.Lỗi nhập: Ủy quyền API Google Analytics

Tôi đã nhận thấy từ các câu hỏi khác trong SO (ImportError: cannot import name SignedJwtAssertionCredentials) SignedJwtAssertionCredentials đã bị xóa và do đó không thể nhập được.

Vì vậy, tôi bắt đầu làm theo các giải pháp được cung cấp cả trên trang GitHub (https://github.com/google/oauth2client/issues/401) và StackOverflow. Cho đến nay, không có gì làm việc, tôi vẫn thấy lỗi tương tự. Sau đây là mã của tôi.

import argparse 

from apiclient.discovery import build 
from oauth2client.service_account import ServiceAccountCredentials 

import httplib2 
from oauth2client import client 
from oauth2client import file 
from oauth2client import tools 

Và, đây là lỗi tôi nhận được khi chạy mã trên.

ImportError: cannot import name ServiceAccountCredentials 

Như tôi là một newbie hoàn toàn trong không gian này, tôi đã cố gắng để làm điều này cho cả hai phiên bản OAuth (2.0.0 và 1.5.2). Tôi cũng đã thử nó sau khi cài đặt pyopenssl, nhưng vẫn không thành công.

+0

Bạn có thể bao gồm sản lượng của 'oauth2client nhập khẩu; oauth2client .__ version__'? – Forge

+0

'nhập khẩu oauth2client' oauth2client .__ phiên bản' __ ' ' Loại: str Chuỗi dạng: 2.0.0-post1 Thời lượng: 11 docstring: str (object = '') -> chuỗi' 'Return một chuỗi đại diện tốt đẹp của đối tượng. Nếu đối số là một chuỗi, giá trị trả lại là cùng một đối tượng.' –

+0

Vấn đề bằng cách nào đó có vẻ đã được giải quyết ngay bây giờ. Tôi chỉ thử một vài giờ sau đó và nó đã hoạt động. –

Trả lời

13

Có vẻ như cài đặt oauth2client không thành công. Hãy thử

pip install --upgrade google-api-python-client

+0

Đã cài đặt thành công. 2.0.0. phiên bản. –

+1

Có thể có nhiều lý do cho việc này không hoạt động. Kiểm tra liên kết này để biết những điều có thể xảy ra sai. http://python-notes.curiousefficiency.org/en/latest/python_concepts/import_traps.html – wtpoo

0

Tôi gặp sự cố tương tự khi gặp lỗi cannot import name xxxx. Hóa ra tôi có các tệp * .pyc cũ trong môi trường của tôi từ một phiên bản oauth2client cũ hơn. Mặc dù tôi đã cập nhật lên phiên bản oauth2client mới nhất, các tệp * .pyc đã được sử dụng khi tôi cố chạy. Tôi đã xóa các tệp oauth2client * .pyc và sau đó chạy lại chương trình của mình mà không gặp bất kỳ sự cố nào.

Ngay cả khi bạn nâng cấp để sử dụng Google-api-python-client mới nhất ... bạn sẽ muốn đảm bảo mọi tệp * .pyc từ thư viện cũ đã bị xóa.

0

Cài đặt pyopenssl cố định vấn đề này cho tôi:

pip install pyopenssl 

Dựa trên this answer.

Các vấn đề liên quan