EI-CoreBioinformatics / portcullis

Splice junction analysis and filtering from BAM files
https://ei-corebioinformatics.github.io/portcullis/
GNU General Public License v3.0
38 stars 9 forks source link

Trouble starting with non-standard python3 #22

Closed IanSudbery closed 8 years ago

IanSudbery commented 8 years ago

Hi,

I have managed to successfully compile using a non-standard Python setting PYTHON=python3 and PYTHON_VERSION=3.

However, while compiling was successful, running make check fails. The error is:

/data/mb1ims/portcullis-0.17.3-src/tests/.libs/lt-check_unit_tests: error while loading shared libraries: libpython3.4m.so.1.0: cannot open shared object file: No such file or directory

I don't know if this is connect to issue #21 or not - the symptoms see slightly different.

maplesond commented 8 years ago

Thanks for pointing this out. I haven't tried the unit tests in that configuration before. If you skip the unit tests, does it work ok?

I suspect the issue is that the portcullis unit test executable needs access to the python library. With the main portcullis executable, this path should be embedded into the executable at linking time. Maybe this isn't happening with the unit tests though. If you add the path to libpython3.4m.so.1.0 onto your LD_LIBRARY_PATH environment variable does it work then? e.g.:

export LD_LIBRARY_PATH="/path/to/directory/containing/python3.4lib:$LD_LIBRARY_PATH"

IanSudbery commented 8 years ago

1) Its not just the tests that fail, but the portcullis executable itself, which fails with the same error.

2) If I add the path to python3 to my LD_LIBRARY_PATH, then portcullis works. Unfortunately nothing else on my system then works after doing that. It seems like that same directory also contains other libraries that are incompatible with the system default copies of the same libraries.

Do you think I could try copying the python library to the portcullis library directory?

IanSudbery commented 8 years ago

Yes that works - I copied all the python3 library files to the portcullis lib directory.

maplesond commented 8 years ago

Ok, good to know. I've looked into this in more detail and while at one point in the development of portcullis I needed to call out to python, there's actually no reason to do that anymore. So I've disabled this functionality. Future versions should work without requiring python to be linked in.