You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac本地VS Code正常运行的定时Python脚本在Parallels中无输出求助

问题原因与解决办法

问题根源

你写的定时判断逻辑time.time() % (60 * 5) == 0存在精度漏洞:

  • time.time()返回的是带毫秒级小数的时间戳(比如1718123456.789),只有当时间戳的小数部分恰好为0时才会触发条件,这种情况几乎是偶然事件,本地运行时刚好碰上了一次,而Parallels虚拟机里没遇到这个巧合。
  • 另外,Parallels虚拟机的系统时间和宿主Mac可能存在微小偏差,进一步降低了触发概率。

修复方案

方案1:修正时间戳精度判断

将时间戳转为整数后再取模,避免小数干扰:

import time

while True:
    current_ts = int(time.time())
    if current_ts % 300 == 0:
        print(time.strftime('%H:%M:%S %Y-%m-%d', time.gmtime(current_ts)))
        time.sleep(1)  # 防止同一秒内重复执行
    time.sleep(0.5)  # 降低CPU占用率

方案2:更高效的休眠式定时

直接计算离下一个5分钟整点的时间,休眠到该时刻再执行任务,比循环轮询更高效:

import time

def execute_task():
    while True:
        now = time.time()
        # 计算距离下一个5分钟整点的秒数
        delay = 300 - now % 300
        time.sleep(delay)
        # 执行你的核心代码
        print(time.strftime('%H:%M:%S %Y-%m-%d', time.gmtime()))

execute_task()

额外检查项

  • 先在Parallels的VS Code里运行print("test"),确认Python环境的输出功能正常。
  • 检查Parallels虚拟机的时间同步:打开虚拟机设置→选项→时间同步,确保功能已开启,避免时间偏差导致定时逻辑异常。

内容的提问来源于stack exchange,提问作者user21287046

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 04:09:59