I am working on packaging an application that uses a library called "harp". 
This python code loads a library using the CFFI module. This is all well 
and good, except for one problem: the script containing the initialization 
code expects to live in:

<wherever>/lib/python3.7/site-packages/harp

As such, it has the following line of code to find the path to the C 
library .so/.dylib:

path = os.path.join(os.path.dirname(__file__), "../../..")

which, under normal usage, gives it a path to the 'lib' directory. However, 
once packaged using Pyinstaller, the "__file__" is moved, so the above code 
ends up pointing to the .app directory (on MacOS X, presumably on 
windows/linux it would be some other equally incorrect path).

Of course, I could easily fix this by changing that line of code (I'm 
thinking something like "../lib" might work, but it might take some 
tweaking), however that would then break things when running my app 
normally (not through Pyinstaller). So how should I best approach this? Is 
there a way in Pyinstaller to tell it "this file needs to live here" such 
that the existing path definition would be correct? Or, alternately, is 
there a way to say "substitute this custom file?" Or maybe a way to write a 
hook that would change that one line of code on packaging (hopefully that's 
all that needs changed)? Thanks.

---
Israel Brewster
Software Engineer
Alaska Volcano Observatory 
Geophysical Institute - UAF 
2156 Koyukuk Drive 
Fairbanks AK 99775-7320
Work: 907-474-5172
cell:  907-328-9145

-- 
You received this message because you are subscribed to the Google Groups 
"PyInstaller" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/pyinstaller.
For more options, visit https://groups.google.com/d/optout.

Reply via email to