Я запускаю bash-скрипт на кластере, в котором используется программа cutadapt (которая использует python).
Перед запуском скрипта я загрузил python версии 3.7.0 и cutadapt
alias python=python3
module load python/3.7.0
pip3 install --user --upgrade cutadapt
, а затем отправьте его через qsub
, но работа по-прежнему прерывается досрочно, и я получаю следующую ошибку:
/u/local/apps/python/3.7.0/bin/python3:
error while loading shared libraries: libpython3.7m.so.1.0:
cannot open shared object file: No such file or directory
Похоже, это не проблема с $LD_LIBRARY_PATH
, поскольку echo $LD_LIBRARY_PATH
показывает, что /u/local/apps/python/3.7.0/lib
указан преимущественно в списке.
Также, ldd /u/local/apps/python/3.7.0/bin/python3
показывает, что libpython3.7m.so.1.0
найден и указывает на:
libpython3.7m.so.1.0 =>
/u/local/apps/python/3.7.0/lib/libpython3.7m.so.1.0 (0x00007f66e01f6000)
Кроме того, вызов cutadapt таким же образом, как мой сценарий, работает правильно:
~/.local/bin/cutadapt
This is cutadapt 2.3 with Python 3.7.0
Command line parameters:
Run "cutadapt --help" to see command-line options.
See https://cutadapt.readthedocs.io/ for full documentation.
Мой коллега выполнил почти тот же код и сценарий, и у него не было проблем с сценарием, прерывающим / это сообщение об ошибке.
Заранее благодарим Вас за любые предложения относительно того, как я могу решить эту проблему!
Редактировать (Спасибо за отзыв!):
Это сценарий, который я отправил (который почти идентичен моему коллеге, за исключением другого домашнего каталога в кластере и другого выходного каталога):
#-- trim00s.sh --#
#!/bin/bash
#runs cutadapt on files 01-09
for i in {1..9}
do
fastq="Index0${i}.for.fq"
trimmedFastq="Index0${i}_trimmed.for.fq"
/u/home/e/evanderw/.local/bin/cutadapt -a GATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG -a "A{10}" -a "T{10}" -m 15 -q 30 -o ../../04_trimmed/lane_2/$trimmedFastq $fastq
done
После первого входа в кластер $LD_LIBRARY_PATH
выглядит следующим образом (я предполагаю, что он автоматически устанавливается для этих библиотек по умолчанию для этого кластера?):
echo $LD_LIBRARY_PATH
/u/local/compilers/intel-cs/2013.0.028/mpi/intel64/lib:
/u/local/compilers/intel-cs/2013.0.028/itac/intel64/itac/slib_impi4:
/u/local/compilers/intel-cs/2013.0.028/composer_xe/compiler/lib/intel64:
/opt/intel/mic/coi/host-linux-release/lib:
/opt/intel/mic/myo/lib:
/u/local/compilers/intel-cs/2013.0.028/composer_xe/mpirt/bin/intel64:
/u/local/compilers/intel-cs/2013.0.028/composer_xe/ipp/lib/intel64:
/u/local/compilers/intel-cs/2013.0.028/composer_xe/mkl/lib/intel64:
/u/local/compilers/intel-cs/2013.0.028/composer_xe/tbb/lib/intel64
Но после изменения alias python=python3
и module load python/3.7.0
оно меняется на:
echo $LD_LIBRARY_PATH
/u/local/apps/python/3.7.0/lib:
/u/local/compilers/intel/17.0.1/compilers_and_libraries_2017.1.132/linux/mkl/lib/intel64:
/u/local/apps/xz/5.2.3/lib:
/u/local/apps/openssl/1.1.1/lib:
/u/local/apps/mpfr/3.1.5/gcc-4.9.3/lib:
/u/local/apps/hdf5/1.8.18/gcc-4.4.7-shared/lib:
/u/local/compilers/gcc/4.9.3/lib:
/u/local/compilers/gcc/4.9.3/lib64:
/u/local/compilers/intel-cs/2013.0.028/mpi/intel64/lib:
/u/local/compilers/intel-cs/2013.0.028/itac/intel64/itac/slib_impi4:
/u/local/compilers/intel-cs/2013.0.028/composer_xe/compiler/lib/intel64:
/opt/intel/mic/coi/host-linux-release/lib:
/opt/intel/mic/myo/lib:
/u/local/compilers/intel-cs/2013.0.028/composer_xe/mpirt/bin/intel64:
/u/local/compilers/intel-cs/2013.0.028/composer_xe/ipp/lib/intel64:
/u/local/compilers/intel-cs/2013.0.028/composer_xe/mkl/lib/intel64:
/u/local/compilers/intel-cs/2013.0.028/composer_xe/tbb/lib/intel64