背景:我在使用python调用飞书API进行自动下载多维表格
问题:我在使用pycharm直接运行时没有任何问题,文件成功下载。但是我将这个文件打包成exe文件后,日志显示ERROR - ❌ 发生异常:'NoneType' object has no attribute 'write'
额外条件:我在该程序中用了.lock文件防止重复运行,在查看后台的时候,我发现该程序会产生2个同名后台(例如:test 7; test 7),然后其中一个被删除,接着这个后台的名下产生了两个后台(例如:test 7(2)),不知道是不是这个影响了文件
如图所示:

问题代码片段:
# **下载文件**
def download_file():
try:
logging.info("🔄 正在执行定时任务...")
deleted_files = delete_old_files()
if deleted_files:
logging.info(f"✅ 已删除以下过期文件:{', '.join(deleted_files)}")
else:
logging.info("🔔 没有过期文件需要删除。")
tenant_access_token = get_tenant_access_token()
wiki_data = get_wiki_api_data(tenant_access_token)
obj_token = extract_obj_token(wiki_data)
ticket = export_task(tenant_access_token, obj_token)
file_token = get_export_task_status(tenant_access_token, ticket, obj_token)
if not file_token:
logging.error("❌ 获取 file_token 失败")
return
url = f"https://open.larksuite.com/open-apis/drive/v1/export_tasks/file/{file_token}/download"
headers = get_authorization_header(tenant_access_token)
response = requests.get(url, headers=headers, stream=True)
if response.status_code == 200:
today_date = datetime.now().strftime("%Y-%m-%d")
file_path = os.path.join(DOWNLOAD_DIR, f"Case Management Platform {today_date}.xlsx")
total_size = int(response.headers.get('Content-Length', 0))
with open(file_path, 'wb') as file, tqdm(
desc=f"Downloading {file_path}",
total=total_size,
unit='B', unit_scale=True) as pbar:
for chunk in response.iter_content(1024):
if chunk:
file.write(chunk)
pbar.update(len(chunk))
logging.info(f"✅ 文件已下载并保存到:{file_path}")
else:
logging.error(f"❌ 文件下载失败,状态码: {response.status_code}")
except Exception as e:
logging.error(f"❌ 发生异常:{str(e)}")