我安装了这些库:
>pip freeze | findstr pythonnet
pythonnet==3.0.0a2
>pip freeze | findstr clr-loader
clr-loader==0.1.7
>pip freeze | findstr pywebview
pywebview==3.6.3我创建了一个包含以下内容的test.py :代码是:
import webview
webview.create_window('Hello world', 'https://pywebview.flowrl.com/')
webview.start()我在Windows 10上,结果是一个空白页:屏幕
发布于 2022-10-18 08:23:35
这里也一样。简言之:
显然,在pip安装的webview包目录(此处:c:/Users/<your_user>/AppData/Local/Packages/PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0/LocalCache/local-packages/Python310/site-packages/webview/lib)中的c:/Users/<your_user>/AppData/Local/Packages/PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0/LocalCache/local-packages/Python310/site-packages/webview/lib无法在这个目录中的arch子文件夹x64或x86中找到相应的WebView2Loader.dll。
找出您的Microsoft WebView2 Runtime (很可能是x64)的弓,然后将dll从相应的子目录中复制到上面。
这是怎么发现的?
在webview包中添加try/except块并添加CoreWebView2 (args.InitializationException)初始化失败的代码,edgechromium是webview的默认gui:
def on_webview_ready(self, sender, args):
try:
logger.debug('### on_webview_ready')
logger.debug('---> '+str(args.InitializationException))
sender.CoreWebView2.NewWindowRequested += self.on_new_window_request
settings = sender.CoreWebView2.Settings
settings.AreDefaultContextMenusEnabled = _debug['mode']
settings.AreDefaultScriptDialogsEnabled = True
settings.AreDevToolsEnabled = _debug['mode']
settings.IsBuiltInErrorPageEnabled = True
settings.IsScriptEnabled = True
settings.IsWebMessageEnabled = True
settings.IsStatusBarEnabled = _debug['mode']
settings.IsZoomControlEnabled = True
if _user_agent:
settings.UserAgent = _user_agent
if self.html:
sender.CoreWebView2.NavigateToString(self.html)
logger.debug('-----------> '+str(sender.CoreWebView2))
except Exception as e:
logger.exception(str(e))这引发错误(德语),可以找到arg名称这里
[pywebview] ---> Die DLL "WebView2Loader.dll": Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E) kann nicht geladen werden.
bei Microsoft.Web.WebView2.Core.CoreWebView2Environment.CreateCoreWebView2EnvironmentWithOptions(String browserExecutableFolder, String userDataFolder, ICoreWebView2EnvironmentOptions options, ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler en
vironment_created_handler)
bei Microsoft.Web.WebView2.Core.CoreWebView2Environment.<CreateAsync>d__3.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Microsoft.Web.WebView2.WinForms.WebView2.<InitCoreWebView2Async>d__13.MoveNext()
[pywebview] 'NoneType' object has no attribute 'NewWindowRequested'
Traceback (most recent call last):
File "C:\Users\<your_user>\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\webview\platforms\edgechromium.py", line 153, in on_webview_ready
sender.CoreWebView2.NewWindowRequested += self.on_new_window_request
AttributeError: 'NoneType' object has no attribute 'NewWindowRequested'https://stackoverflow.com/questions/73971413
复制相似问题