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

Windows Server部署Flask应用遇网络路径找不到错误及多反斜杠问题

Flask部署Windows Server后无法访问网络文件夹问题

问题描述

在Windows Server上部署Flask应用,本地测试正常,但部署后无法访问目标网络文件夹:

  • 路径定义:mainpath = '//part1//part2/part3/folder'
  • 测试代码:os.listdir(mainpath)
  • 报错信息:
FileNotFoundError: [WinError 53] The network path was not found: '\\\\part1\\part2\\part3\\folder'

已尝试os.path.normpath、os.path.abspath、Path、PureWindowsPath、多种斜杠/反斜杠组合、os.path.join、原始字符串等30余种方式,均未解决。


为什么路径里出现大量反斜杠?

这是Python字符串打印时的转义显示,并非实际路径问题。Windows用反斜杠\作为路径分隔符,而Python里反斜杠需要转义成\\,所以报错信息里的\\\\实际对应网络共享路径的\\前缀,\\part1\\part2...才是实际传递给系统的路径——这个显示问题不是导致报错的核心原因。


解决方案

1. 检查Flask运行账户的权限

Windows网络共享的访问权限完全绑定到运行Flask的账户:

  • 若用IIS部署:默认使用IUSR或ApplicationPoolIdentity账户,这类账户默认无网络共享访问权限。需给目标共享文件夹添加该账户的读写权限,或把应用池身份切换为有访问权限的域账户/本地管理员账户。
  • 若用flask run或自启动脚本运行:先手动用相同账户登录服务器,尝试打开\\part1\part2\part3\folder,确认无需输入密码即可访问——如果手动都打不开,代码肯定也访问不了。

2. 标准化网络路径格式

直接使用Windows标准UNC路径,推荐用原始字符串避免转义干扰:

mainpath = r'\\part1\part2\part3\folder'

或用os.path模块构建路径,确保格式兼容:

import os
mainpath = os.path.join('\\\\part1', 'part2', 'part3', 'folder')

3. 排查网络与共享配置

  • 确认服务器能ping通part1主机,网络链路无故障;
  • 检查目标文件夹的共享权限和NTFS权限,确保Flask运行账户同时拥有两种权限;
  • 跨服务器场景下,确认双方防火墙、组策略未阻止SMB(网络共享)协议的访问。

4. 映射网络驱动器(备选方案)

若直接用UNC路径始终失败,可尝试将网络共享映射为本地驱动器:

import subprocess
# 先执行映射命令(需运行账户有权限,注意密码安全)
subprocess.run(r'net use Z: \\part1\part2\part3\folder /user:domain\username your_password /persistent:yes', shell=True)
# 访问映射后的驱动器路径
mainpath = 'Z:\\folder'
os.listdir(mainpath)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 04:21:03