google api 和 APscheduler
google api and APscheduler
所以我在使用这些库时遇到的问题是,当我尝试使用 cx_freeze 编译 python 脚本时,如果我有第 3 版的 APscheduler,它会拒绝编译
错误信息:
"ImportError: No module named '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()
cx_freeze 依靠启发式方法来确定要包含哪些模块以及不包含哪些模块。这对 APScheduler 失败,因为它依赖于入口点(因此是动态导入)。因此,您必须明确地将 apscheduler 包添加到 cx_freeze 的所需模块列表中。
所以我在使用这些库时遇到的问题是,当我尝试使用 cx_freeze 编译 python 脚本时,如果我有第 3 版的 APscheduler,它会拒绝编译
错误信息:
"ImportError: No module named '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()
cx_freeze 依靠启发式方法来确定要包含哪些模块以及不包含哪些模块。这对 APScheduler 失败,因为它依赖于入口点(因此是动态导入)。因此,您必须明确地将 apscheduler 包添加到 cx_freeze 的所需模块列表中。