r0x0r / pywebview

Build GUI for your Python program with JavaScript, HTML, and CSS
https://pywebview.flowrl.com
BSD 3-Clause "New" or "Revised" License
4.67k stars 544 forks source link

fix: Set WebView2 user data path #1456

Closed fwRelik closed 4 weeks ago

fwRelik commented 1 month ago

Problem:

After building a project using PyInstaller into a single executable file, during the application's runtime, a folder named "exe.WebView2" was created next to the executable file. Due to the location of the executable, the application lacked the necessary permissions to modify its folder, leading to runtime issues.

Attempts to resolve this issue by following the suggestions mentioned in this discussion did not yield the desired results.

Solution:

Upon consulting the WebView2 documentation, specifically the "Manage user data folders" section (source), I discovered that it's possible to specify a custom path for the creation of the user data folder.

I modified the setup_webview2_environment method in the edgechromium.py file to include the userDataFolder parameter when calling CoreWebView2Environment.CreateAsync. By setting the path to _settings['storage_path'], I was able to direct the WebView2 data folder to a location with the appropriate permissions, fully addressing the issue.

This change ensures that the WebView2 data folder is created in a specified.

gmsnk commented 4 weeks ago

It’s working great.