Hello! I’m a new user who has recently switched from macOS to Linux. I really enjoy using Fedora 35 on my oldish MacBook Air. It’s really performant! However, I have encountered an issue with a Python library that prevents me from developing my project.
Background information
I’m developing a Python (3.10.1) project that uses the pyppdf library. The pyppdf library depends on a puppeteer port – pyppeteer.
The issue
The pyppdf library uses puppeteer and runs headless chromium to generate PDFs from HTML. During the first run, pyppdf downloads a specific chromium version (86.0.4240.0).
Unfortunately, the HTML->PDF conversion never completes because chromium never launches (AFAIK) and my program is stuck until I stop it.
Troubleshooting attempts
- I tried installing the suggested CentOS dependencies (some of them are not available for Fedora(?)): puppeteer/troubleshooting.md at main · puppeteer/puppeteer · GitHub
- I tried installing various
chromium
andwebdriver
dnf packages - I tried running the chromium instance that was downloaded by pyppdf. It throws errors and the GUI app is virtually not functional.
/home/rk/.local/share/pyppeteer/local-chromium/800217/chrome-linux/nacl_helper
[1:1:0112/222303.861702:ERROR:nacl_fork_delegate_linux.cc(329)] Bad NaCl helper startup ack (0 bytes)
[7670:7704:0112/222303.998922:ERROR:login_database.cc(663)] Password store database is too new, kCurrentVersionNumber=27, GetCompatibleVersionNumber=31
[7670:7704:0112/222303.999306:ERROR:password_store_default.cc(41)] Could not create/open login database.
[7670:7704:0112/222303.999343:ERROR:password_store_x.cc(225)] Could not start the migration into the encrypted LoginDatabase because the database failed to initialise.
[7699:7699:0112/222304.134663:ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
- I tried running the chromium instance downloaded by pyppdf with the following flags:
./chrome -v --no-sandbox --disable-setuid-sandbox
. It throws the same errors but the GUI app is operable (websites are rendered). There’s also no way for me to pass these flags in my Python projects (I think). - I downloaded the newest chromium and ran it from the terminal with no issues
Final thoughts
My app and the pyppdf library work just fine on macOS and Ubuntu with the same Python interpreter version.
I guess that there must be something wrong with the dependencies or the way that Fedora handles older chromium versions.
I’d greatly appreciate your help! I googled a ton of threads before writing this post and found no solution.