dieterich-lab / circtools

circtools: a modular, python-based framework for circRNA-related tools that unifies several functionalities in a single, command line driven software.
http://circ.tools
GNU General Public License v3.0
25 stars 20 forks source link

Python2 and 3 support not feasible on HPC environments #82

Open Psy-Fer opened 5 years ago

Psy-Fer commented 5 years ago

Hello,

trying to install this, the 2 python2 packages fail, as in order to install them , I need a python 2.7+ venv, while also having a python 3.6 venv. Is it possible to make this ONLY python 3?

Psy-Fer commented 5 years ago

Or, perhaps an explanation of how to do a --user install that doesn't, for example, use .local/bin (can we change this to isolate virtual environments?) that can use a python3 venv and a python2 venv, on centOS

tjakobi commented 5 years ago

Dear @Psy-Fer,

thank you for your feedback. Actually, I am working on porting everything to Python 3 and there are only a few pieces of code in dieterich-lab/FUCHS that require some more convincing.

In the meantime, since circtools directly calls the two Python 2 programs via os.system() you may install circtools into a Python 3 venv and DCC + FUCHS in a Python 2 venv - just make sure DCC and FUCHS are in $PATH.

Cheers, Tobias

Psy-Fer commented 5 years ago

Ahh absolute legend.

I'll give that a go and let you know how I get along. Thanks!

Psy-Fer commented 5 years ago

Hello

okay so after hacking at the python2 and python3 virtual environments for a bit, I added the following to the python3 activate script

VIRTUAL_ENV="/home/jamfer/work/sandy363"
export VIRTUAL_ENV

_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/bin:$PATH"
PATH="/home/jamfer/work/sandy2714/bin:$PATH"
export PATH

#iexport PATH="/home/jamfer/work/DCC/scripts:$PATH"
#export PATH="/home/jamfer/work/FUCHS/scripts:$PATH"
export PATH="/home/jamfer/.local/bin:$PATH"
export PYTHONPATH="/home/jamfer/.local/lib/python3.6/site-packages/"
export PYTHONPATH="/home/jamfer/.local/lib/python2.7/site-packages/:$PYTHONPATH"

This allowed for the python2 to get executed by the python2, and python3 to get hit by python3, while being able to see the lib site-packages of each.

I'll run a test of the full thing soon when my colleague is ready.

Cheers, James

iichelhadi commented 3 years ago

Dear @Psy-Fer,

thank you for your feedback. Actually, I am working on porting everything to Python 3 and there are only a few pieces of code in dieterich-lab/FUCHS that require some more convincing.

In the meantime, since circtools directly calls the two Python 2 programs via os.system() you may install circtools into a Python 3 venv and DCC + FUCHS in a Python 2 venv - just make sure DCC and FUCHS are in $PATH.

Cheers, Tobias

Hi Tobias, Any progress on this? I am having difficulty installing DCC and FUCHS on HPC using different env for circtools with python3 and DCC env with python2. Issue is that DCC requires HTSeq which is only available for python3

regards

tjakobi commented 3 years ago

Dear @iichelhadi,

the latest versions of DCC and FUCHS are both Python3 based and should work without separate venvs.

How did you install circtools/DCC/FUCHS?