I am new to pyinstaller and run into a rather odd problem,
I wonder if anyone could help me. I am using pyinstaller
on a linux machine for my tests.
I am using the python module yapgvb, which stands
for Yet Another Python GraphViz Binding. As per its
name it binds the graphviz library that can be called within
python. As far as I understand, this library comes
with modules located under /usr/lib/graphviz/ where
a config file specifies the plugins available on the system
(in the form of shared libraries libgvplugin_FOO.so.5).
I can build the executable with pyinstaller but it will fail
to find those plugins when ran on the same system it was built on.
I tried to use the COLLECT method to include all the plugins
but it doesn't seem to work.
I include an example code that demonstrates the issue.
Running the python script as usual works ok. When
built using pyinstaller I get a graphviz error:
Error: Layout type: "dot" not recognized. Use one of:
Layout was not done
Do you have any clues on how I could solve the problem ?
thanks for your help,
--
Bertrand
Maybe it could solve to write some import hooks for package 'yapgvb'.
Please look in manual for 'hook', 'hidden import':
http://www.pyinstaller.org/export/latest/tags/1.4/doc/Manual.html
and in the pyinstaller source see folder: 'hooks'
Thanks, indeed, there seems to be some similar stuff in there
(like in the hoot-PyQT4... files). I'll try it this way.
--
B
So I tried it this way, but with no luck. This is not a problem
with pyInstaller, as I was able to include the shared
libraries with a hook-yapgvb, but a problem with graphviz itself.
Its mechanism for finding plugins is odd and I don't think it allows
inclusion of the .so files within a standalone binary.
thanks again for the help
--
Bertrand
you're welcome