2016-12-09 17 views
1

私はかなり新しいPythonユーザーです。Pythonanywhereを使用してGoogleドライブにファイルをアップロードしようとしています。私は私のPC上で私のスクリプトを(以下)試してみましたが、Pythonで試してみるとエラーになります。スクリプトのPythonanywhereでGoogleドライブにアップロード

部:

from pydrive.drive import GoogleDrive 

def sendtogoogle(): 
drive = GoogleDrive() 
gpath = 'Myfolder' 
fname = 'Apicture.jpg' 
file_list = drive.ListFile({'q': "'root' in parents and trashed=false"}).GetList() 
for file1 in file_list: 
    if file1['title'] == gpath: 
     id = file1['id'] 
file1 = drive.CreateFile({'title': fname, "parents": [{"kind": "drive#fileLink","id": id}]}) 
file1.SetContentFile(fname) 
file1.Upload() 

エラー:任意の提案を事前に

Traceback (most recent call last): 
from pydrive.drive import GoogleDrive 
File "/home/myusername/.local/lib/python2.7/site-packages/pydrive/drive.py", line 2, in <module> 
from .files import GoogleDriveFile 
File "/home/myusername/.local/lib/python2.7/site-packages/pydrive/files.py", line 4, in <module> from apiclient import errors 
File "/usr/local/lib/python2.7/dist-packages/apiclient/__init__.py", line 18, in <module> 
from googleapiclient import channel 
File "/usr/local/lib/python2.7/dist-packages/googleapiclient/channel.py", line 63, in <module> 
from googleapiclient import errors 
File "/usr/local/lib/python2.7/dist-packages/googleapiclient/errors.py", line 26, in <module> 
from oauth2client import util 
ImportError: cannot import name util 

感謝。

答えて

3

GitHubのissue #270に基づいて、発生したエラーは、1.5.2で修正されたoauth2client互換性の問題のようです。あなたはしていない場合

あなたはあなたのコードでは、この行を削除しようとする場合があります:

from oauth2client import util 

詳細については、あなたもGoogle API Client Libraries > Python - Getting Startedを訪問するかもしれません。

0

私はPythonAnywhereでgoogle-api-python-clientを使用して成功しました。私はvirtualenvにpipをインストールしました。

私のコードは以下の通りです。

import httplib2 
    import os 
    from apiclient import discovery 
    from googleapiclient.http import * 
    from oauth2client import client 
    from oauth2client import tools 
    from oauth2client.file import Storage 

    #This function was copied from the getting started guide on Google Drive API guide. 
    credentials = get_credentials() 
    http = credentials.authorize(httplib2.Http()) 
    service = discovery.build('drive', 'v3', http=http) 

    file_metadata = {'name' : how_you_want_name_of_file_to_appear_on_Google_Drive, 
        'parents': [id_of_folder_in_Google_drive_to_upload_to] 
        } 

    mime_string = 'application/pdf' #or whatever else you want 
    media = MediaFileUpload(full_path_of_file_to_upload, mimetype = mime_string, resumable = False) 

    file = service.files().create(body = file_metadata, media_body = media, fields = 'id').execute() 

警告1つ。私はローカルマシン上でこれを実行しました。それが私が認可についてのポップアップウィンドウを持っていた場所です。その後、私はPythonAnywhereアカウントに信任状ファイルをアップロードしました。私はPythonAnywhereサーバから「許可」を試みたことはありません。

関連する問題