![]() |
#1 |
Junior Member
![]() Posts: 7
Karma: 10
Join Date: May 2023
Device: Mac
|
Plugin Start Up Error - "symbol not found"
I have a Mac ARM laptop with macOS Sonoma installed. I am trying to run some plugins that used to work but now fail on startup when I try to use gumbo. A simple plugin without gumbo still works fine.
#Import: import sigil_gumbo_bs4_adapter as gumbo This is the error I get: File "/Applications/Sigil.app/Contents/plugin_launchers/python/sigil_gumbo_bs4_adapter.py", line 35, in <module> import sigil_gumboc as gumboc File "/Applications/Sigil.app/Contents/plugin_launchers/python/sigil_gumboc.py", line 132, in <module> SourcePosition.EMPTY = SourcePosition.in_dll(_dll, 'kGumboEmptySourcePosition') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ValueError: dlsym(RTLD_DEFAULT, kGumboEmptySourcePosition): symbol not found Error: dlsym(RTLD_DEFAULT, kGumboEmptySourcePosition): symbol not found Any suggestions for correcting this would be appreciated. |
![]() |
![]() |
![]() |
#2 |
Sigil Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 7,981
Karma: 5449552
Join Date: Nov 2009
Device: many
|
This error typically means that libsigilgumbo.dylib is not being properly found by the plugin code.
Are you running an Arm64 build of Sigil or an x86_64 build of Sigil under automatic translation? Also make sure you are using Sigil 2.0.2 and none of the earlier versions. I will give this a try on my own MacOS arm64 machine. Last edited by KevinH; 03-18-2024 at 02:14 PM. |
![]() |
![]() |
Advert | |
|
![]() |
#3 |
Sigil Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 7,981
Karma: 5449552
Join Date: Nov 2009
Device: many
|
Okay, I just ran the following snippet inside my own testme3 plugin and it worked just fine:
Code:
# examples for using the bs4/gumbo parser to process xhtml print("\nExercising: the gumbo bs4 adapter") import sigil_gumbo_bs4_adapter as gumbo_bs4 samp = """ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml/" xml:lang="en" lang="en-US"> <head><title>testing & entities</title></head> <body> <p class="first second">this is*the*<i><b>copyright</i></b> symbol "©"</p> <p xmlns:xlink="http://www.w3.org/xlink" class="second" xlink:href="http://www.ggogle.com">this used to test atribute namespaces</p> </body> </html> """ soup = gumbo_bs4.parse(samp) for node in soup.find_all(attrs={'class':'second'}): print(node) Exercising: the gumbo bs4 adapter <p class="first second">this is the <i><b>copyright</b></i> symbol "©"</p> <p xmlns:xlink="http://www.w3.org/xlink" class="second" xlink:href="http://www.ggogle.com">this used to test atribute namespaces</p> --- I would be careful importing that library as "gumbo" as google gumbo and sigil's gumbo are not identical in case of a collision. The next place to look is to make sure the libsigilgumbo.dylib is in its proper place inside the app. In Terminal.app (assuming you install Sigil in /Applications) try the following: ls /Applications/Sigil.app/Contents/lib/ It should show as output: libhunspell.dylib libsigilgumbo.dylib Are you by chance using an external 3.12 (or newer) Python3 version for your plugins instead of the internal embedded version in my Release builds? If so, drop back to Python 3.11.x as there are breaking changes in Python 3.12.x that may impact using cdll to load sigilgumbo. Are you by chance building your own version of Sigil? Last edited by KevinH; 03-18-2024 at 02:12 PM. |
![]() |
![]() |
![]() |
#4 |
Junior Member
![]() Posts: 7
Karma: 10
Join Date: May 2023
Device: Mac
|
I am using the ARM version of Sigil 2.0.2. I am also using python 3.11.4 (there is a reason why I wanted to use >3.4, but I've slept since then. Maybe something to do with classes?). I'll check the rest of your note and update this thread.
|
![]() |
![]() |
![]() |
#5 |
Sigil Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 7,981
Karma: 5449552
Join Date: Nov 2009
Device: many
|
Using Python 3.11 should work just fine. Python 3.4 was the old minimum.
|
![]() |
![]() |
Advert | |
|
![]() |
#6 |
Junior Member
![]() Posts: 7
Karma: 10
Join Date: May 2023
Device: Mac
|
I changed the name of the import to match yours and double checked that both dylibs you show above are in my Sigil app bundle. I am also using the precompiled version of Sigil.
|
![]() |
![]() |
![]() |
#7 |
Junior Member
![]() Posts: 7
Karma: 10
Join Date: May 2023
Device: Mac
|
I also created a new plugin to duplicate your sample above. When I ran it, I get the following error:
Exercising: the gumbo bs4 adapter Traceback (most recent call last): File "/Applications/Sigil.app/Contents/plugin_launchers/python/launcher.py", line 141, in launch target_script = __import__(script_module) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/chipbeaulieu/Library/Application Support/sigil-ebook/sigil/plugins/Test4/plugin.py", line 3, in <module> import sigil_gumbo_bs4_adapter as gumbo_bs4 File "/Applications/Sigil.app/Contents/plugin_launchers/python/sigil_gumbo_bs4_adapter.py", line 35, in <module> import sigil_gumboc as gumbo File "/Applications/Sigil.app/Contents/plugin_launchers/python/sigil_gumboc.py", line 132, in <module> SourcePosition.EMPTY = SourcePosition.in_dll(_dll, 'kGumboEmptySourcePosition') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ValueError: dlsym(RTLD_DEFAULT, kGumboEmptySourcePosition): symbol not found Error: dlsym(RTLD_DEFAULT, kGumboEmptySourcePosition): symbol not found |
![]() |
![]() |
![]() |
#8 |
Sigil Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 7,981
Karma: 5449552
Join Date: Nov 2009
Device: many
|
Again, that means the libsigilgumbo.dylib can not be found.
Make sure you are using the Embedded Python (check that box) and not an External python and re-run your test. The Embedded Python version is Python 3.11.3 in Sigil 2.0.2 Last edited by KevinH; 03-18-2024 at 04:37 PM. |
![]() |
![]() |
![]() |
#9 |
Sigil Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 7,981
Karma: 5449552
Join Date: Nov 2009
Device: many
|
Please zip up and attach your full Test4/plugin.py to this thread so I can try exactly what you are trying.
Or simply add your current Test4 plugin zip here so I can test with it directly. Perhaps this is some new strange security change in Sonoma? The exact path to the sigilgumbo library is passed into the plugin so how it can not be found is a real mystery. Last edited by KevinH; 03-18-2024 at 04:38 PM. |
![]() |
![]() |
![]() |
#10 |
Junior Member
![]() Posts: 7
Karma: 10
Join Date: May 2023
Device: Mac
|
One additional note: I am using VS Code for Python, and confirmed I am not using a python virtual environment.
|
![]() |
![]() |
![]() |
#11 | |
Sigil Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 7,981
Karma: 5449552
Join Date: Nov 2009
Device: many
|
Quote:
Please try with the builtin Embedded Python that comes in Sigil (ie check that box). Do not use an external Python for this test. Last edited by KevinH; 03-18-2024 at 04:46 PM. |
|
![]() |
![]() |
![]() |
#12 |
Junior Member
![]() Posts: 7
Karma: 10
Join Date: May 2023
Device: Mac
|
Success! Using the embedded Python works with your code and now I am checking my code and will update this thread once it's working. Thanks for your help.
|
![]() |
![]() |
![]() |
Tags |
gumbo, python |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
"Error importing EPUB. EOCD not found. Not a ZIP archive? (Error Code 1068)" | oren | ePub | 8 | 02-20-2012 07:20 AM |
"Error importing EPUB. EOCD not found. Not a ZIP archive? (Error Code 1068)" | oren | Android Devices | 1 | 02-20-2012 04:10 AM |
Calibre plugIn Kindle Collections Error message "Value Error:month..." | readee | Plugins | 4 | 10-10-2011 11:21 AM |