
当python脚本文件名与要导入的第三方库(如`webview`)同名时,会导致循环导入错误,引发`attributeerror: partially initialized module 'webview' has no attribute 'create_window'`。根本原因是python优先加载本地同名文件而非安装的库。
在使用 python-webview 创建 Windows 原生 Web 视图窗口时,一个极易被忽视却高频发生的错误是:将你的 Python 脚本命名为 webview.py。这会直接导致 Python 解释器在执行 import webview 时,错误地加载你当前目录下的 webview.py 文件本身,而非已通过 pip install webview 安装的官方库。由于该脚本内部又尝试 import webview,从而触发无限递归式自我导入——模块尚未完成初始化,自然无法访问 create_window 等属性,最终抛出 AttributeError。
✅ 正确做法如下:
-
删除同目录下可能生成的 webview.pyc 或 __pycache__/ 文件夹(避免缓存干扰);
立即学习“Python免费学习笔记(深入)”;
-
确保已正确安装库:
pip install pywebview
⚠️ 注意:包名为 pywebview(非 webview),导入时仍用 import webview。
-
使用标准示例代码(注意 URL 必须带协议):
import webview if __name__ == '__main__': # ✅ 正确:使用完整 URL(含 https://) webview.create_window('Ridola Web View', 'https://www.google.com') webview.start()
? 补充说明:
- www.google.com ❌ 不合法(缺少协议),必须写为 'https://www.google.com' 或 'http://example.com';
- 若需调试 sys.path 加载顺序,可临时加入:
import sys print([p for p in sys.path if 'webview' in p.lower() or 'desktop' in p.lower()])
- 其他类似冲突场景(如 requests.py、json.py、os.py)均适用同一原则:永远避免脚本名与标准库或第三方库同名。
遵循以上步骤后,即可成功启动原生 Windows Web 视图窗口,无需额外依赖浏览器或复杂配置。










