2017-12-26 45 views
0

だから私はこれらのライブラリを持ってる問題は、私がしようとcx_freezeでPythonスクリプトをコンパイルするとき、私はAPschedulerのバージョン3を持っている場合、それはGoogleのAPIとAPscheduler

エラーメッセージコンパイルすることを拒否していることである:

「はImportError: 『apscheduler.executors.base_py3』という名前はありませんモジュール」

と私はそれがコンパイル2.1.2バージョンでコンパイルしてみたが、実行は、それがapscheduler.schedulers.blockingから をインポート傾けるというエラーがスローされますBlockingSchedulerをインポートする

誰もこれを回避する方法を知っているのですか、解決策がありますか?以下

コード:

import gspread, time, requests 
from oauth2client.service_account import ServiceAccountCredentials 
from apscheduler.schedulers.blocking import BlockingScheduler 


def update(): 
    print("used") 
    scope = ['https://spreadsheets.google.com/feeds'] 
    creds = ServiceAccountCredentials.from_json_keyfile_name('details.json', scope) 
    client = gspread.authorize(creds) 
    sheet = client.open('ip_display').sheet1 

    userip = (requests.get("http://jsonip.com/").json())["ip"] 

    row = [userip, ] 

    sheet.update_cell(2, 1, userip) 
    sheet.update_cell(2, 2, time.strftime("%H:%M:%S")) 


scheduler = BlockingScheduler() 
job = scheduler.add_job(update, 'interval', hours=1) 

scheduler.start() 

答えて

0

cx_freezeとしては、何ないようにするモジュールを決定するためにヒューリスティックに依存しています。これは、APSchedulerがエントリポイント(したがって動的インポート)に依存しているため、失敗します。したがって、必要なモジュールのcx_freezeのリストにapschedulerパッケージを明示的に追加する必要があります。