我正在尝试捆绑一个依赖graphviz dot
和nop
可执行文件的应用程序。这些反过来依赖于/usr/local/Cellar/graphviz/2.44.0/lib/libctd.5.dylib
之类的库。
将所有这些二进制文件包含在pyinstaller中的正确方法是什么?
我尝试将它们包含在以下不同版本中:
binaries=[('/usr/local/bin/dot', 'mymoduledir'),
('/usr/local/bin/nop', 'mymoduledir'),
('/usr/local/Cellar/graphviz/*/lib/*.dylib', '.'),
('/usr/local/Cellar/graphviz/*/lib/graphviz/*.dylib', '.'),
我确认dylib显示在dist/Alpha.app/Contents/MacOS/
中,但是由于某些原因,在运行该应用程序时找不到。
将发生的一个错误如下:
Traceback (most recent call last):
File "pygraphviz/graphviz.py", line 18, in swig_import_helper
File "imp.py", line 296, in find_module
ImportError: No module named '_graphviz'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "networkx/drawing/nx_agraph.py", line 133, in to_agraph
File "/Users/vagrant/env_alpha/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 623, in exec_module
exec(bytecode, module.__dict__)
File "pygraphviz/__init__.py", line 58, in <module>
File "/Users/vagrant/env_alpha/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 623, in exec_module
exec(bytecode, module.__dict__)
File "pygraphviz/agraph.py", line 22, in <module>
File "/Users/vagrant/env_alpha/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 623, in exec_module
exec(bytecode, module.__dict__)
File "pygraphviz/graphviz.py", line 28, in <module>
File "pygraphviz/graphviz.py", line 20, in swig_import_helper
ImportError: dlopen(/Users/vagrant/alpha/dist/Alpha.app/Contents/MacOS/_graphviz.cpython-37m-darwin.so, 2): Library not loaded: @loader_path/libcdt.5.dylib
Referenced from: /Users/vagrant/alpha/dist/Alpha.app/Contents/MacOS/_graphviz.cpython-37m-darwin.so
Reason: image not found