Libcudart.so.8.0 not found in Travis CI

Hi,

Sorry if this shouldn’t belong here in the forum, but I have this error

    from torch._C import *
E   ImportError: libcudart.so.8.0: cannot open shared object file: No such file or directory

when running tests with Pytorch inside Travis CI. Here’s my .travis.yml file:

language: python
before_install:
  - wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh
  - bash ~/miniconda.sh -b -p $HOME/miniconda
  - export PATH="$HOME/miniconda/bin:$PATH"
  - conda create -y -n some_env python=3.6
  - source activate some_env
  - conda install -y -c pytorch pytorch=0.3.0
install:
  - pip install -r requirements.txt
  - pip install .
script: pytest --cov
after_success: coveralls

The build fails when executing pytest --cov. This was fine ~3 months ago. I have tried putting unset LD_LIBRARY_PATH (as suggested here) at the last step of before_install but it doesn’t work.

try adding conda library path to LD_LIBRARY_PATH:

export LD_LIBRARY_PATH="$HOME/miniconda/lib:$LD_LIBRARY_PATH"

That’s where libcudart.so.8.0 should be located.

Hi, thank you for replying.

I tried that (after export PATH) but the error is still there. It seems there’s no libcudart.so.8.0 in $HOME/miniconda/lib. Here’s the complete list of files:

drwxr-xr-x  2 travis travis      236 Apr  7 15:42 engines
drwxr-xr-x  2 travis travis      158 Apr  7 15:42 itcl4.1.0
lrwxrwxrwx  1 travis travis       16 Apr  7 15:42 libasan.so -> libasan.so.4.0.0
lrwxrwxrwx  1 travis travis       16 Apr  7 15:42 libasan.so.4 -> libasan.so.4.0.0
-rwxr-xr-x  2 travis travis  7337600 Oct  6  2017 libasan.so.4.0.0
lrwxrwxrwx  1 travis travis       18 Apr  7 15:42 libatomic.so -> libatomic.so.1.2.0
lrwxrwxrwx  1 travis travis       18 Apr  7 15:42 libatomic.so.1 -> libatomic.so.1.2.0
-rwxr-xr-x  2 travis travis   161216 Oct  6  2017 libatomic.so.1.2.0
-rw-r--r--  1 travis travis  4454732 Apr  7 15:42 libcrypto.a
lrwxrwxrwx  1 travis travis       18 Apr  7 15:42 libcrypto.so -> libcrypto.so.1.0.0
-rwxr-xr-x  1 travis travis  2627408 Apr  7 15:42 libcrypto.so.1.0.0
-rw-r--r--  2 travis travis   375120 Sep 17  2017 libedit.a
-rwxr-xr-x  1 travis travis      967 Apr  7 15:42 libedit.la
lrwxrwxrwx  1 travis travis       17 Apr  7 15:42 libedit.so -> libedit.so.0.0.56
lrwxrwxrwx  1 travis travis       17 Apr  7 15:42 libedit.so.0 -> libedit.so.0.0.56
-rwxr-xr-x  2 travis travis   247224 Sep 17  2017 libedit.so.0.0.56
-rw-r--r--  2 travis travis    50024 Nov  8 21:42 libffi.a
-rwxr-xr-x  1 travis travis      922 Apr  7 15:42 libffi.la
lrwxrwxrwx  1 travis travis       15 Apr  7 15:42 libffi.so -> libffi.so.6.0.4
lrwxrwxrwx  1 travis travis       15 Apr  7 15:42 libffi.so.6 -> libffi.so.6.0.4
-rwxr-xr-x  2 travis travis    40864 Nov  8 21:42 libffi.so.6.0.4
lrwxrwxrwx  1 travis travis       10 Apr  7 15:42 libform.a -> libformw.a
lrwxrwxrwx  1 travis travis       15 Apr  7 15:42 libform.so -> libformw.so.6.0
-rw-r--r--  2 travis travis   144262 Nov 10 21:52 libformw.a
lrwxrwxrwx  1 travis travis       15 Apr  7 15:42 libformw.so -> libformw.so.6.0
lrwxrwxrwx  1 travis travis       15 Apr  7 15:42 libformw.so.6 -> libformw.so.6.0
-rwxr-xr-x  2 travis travis    88424 Nov 10 21:52 libformw.so.6.0
-rw-r--r--  2 travis travis      132 Oct  6  2017 libgcc_s.so
-rw-r--r--  2 travis travis   714800 Oct  6  2017 libgcc_s.so.1
lrwxrwxrwx  1 travis travis       16 Apr  7 15:42 libgomp.so -> libgomp.so.1.0.0
lrwxrwxrwx  1 travis travis       16 Apr  7 15:42 libgomp.so.1 -> libgomp.so.1.0.0
-rwxr-xr-x  2 travis travis   818632 Oct  6  2017 libgomp.so.1.0.0
-rw-r--r--  2 travis travis   163462 Nov 10 21:58 libhistory.a
lrwxrwxrwx  1 travis travis       17 Apr  7 15:42 libhistory.so -> libhistory.so.7.0
lrwxrwxrwx  1 travis travis       17 Apr  7 15:42 libhistory.so.7 -> libhistory.so.7.0
-rwxr-xr-x  1 travis travis   149360 Apr  7 15:42 libhistory.so.7.0
lrwxrwxrwx  1 travis travis       15 Apr  7 15:42 libitm.so -> libitm.so.1.0.0
lrwxrwxrwx  1 travis travis       15 Apr  7 15:42 libitm.so.1 -> libitm.so.1.0.0
-rwxr-xr-x  2 travis travis   859472 Oct  6  2017 libitm.so.1.0.0
lrwxrwxrwx  1 travis travis       16 Apr  7 15:42 liblsan.so -> liblsan.so.0.0.0
lrwxrwxrwx  1 travis travis       16 Apr  7 15:42 liblsan.so.0 -> liblsan.so.0.0.0
-rwxr-xr-x  2 travis travis  1991168 Oct  6  2017 liblsan.so.0.0.0
-rw-r--r--  2 travis travis   299356 Nov  7 22:04 liblzma.a
-rwxr-xr-x  1 travis travis      942 Apr  7 15:42 liblzma.la
lrwxrwxrwx  1 travis travis       16 Apr  7 15:42 liblzma.so -> liblzma.so.5.2.3
lrwxrwxrwx  1 travis travis       16 Apr  7 15:42 liblzma.so.5 -> liblzma.so.5.2.3
-rwxr-xr-x  2 travis travis   173408 Nov  7 22:04 liblzma.so.5.2.3
lrwxrwxrwx  1 travis travis       10 Apr  7 15:42 libmenu.a -> libmenuw.a
lrwxrwxrwx  1 travis travis       15 Apr  7 15:42 libmenu.so -> libmenuw.so.6.0
-rw-r--r--  2 travis travis    71350 Nov 10 21:52 libmenuw.a
lrwxrwxrwx  1 travis travis       15 Apr  7 15:42 libmenuw.so -> libmenuw.so.6.0
lrwxrwxrwx  1 travis travis       15 Apr  7 15:42 libmenuw.so.6 -> libmenuw.so.6.0
-rwxr-xr-x  2 travis travis    42312 Nov 10 21:52 libmenuw.so.6.0
lrwxrwxrwx  1 travis travis       13 Apr  7 15:42 libncurses.a -> libncursesw.a
lrwxrwxrwx  1 travis travis       15 Apr  7 15:42 libncurses++.a -> libncurses++w.a
lrwxrwxrwx  1 travis travis       18 Apr  7 15:42 libncurses.so -> libncursesw.so.6.0
-rw-r--r--  2 travis travis   156880 Nov 10 21:52 libncurses++w.a
-rw-r--r--  2 travis travis   428898 Nov 10 21:52 libncursesw.a
lrwxrwxrwx  1 travis travis       18 Apr  7 15:42 libncursesw.so -> libncursesw.so.6.0
lrwxrwxrwx  1 travis travis       18 Apr  7 15:42 libncursesw.so.6 -> libncursesw.so.6.0
-rwxr-xr-x  2 travis travis   252768 Nov 10 21:52 libncursesw.so.6.0
lrwxrwxrwx  1 travis travis       11 Apr  7 15:42 libpanel.a -> libpanelw.a
lrwxrwxrwx  1 travis travis       16 Apr  7 15:42 libpanel.so -> libpanelw.so.6.0
-rw-r--r--  2 travis travis    28834 Nov 10 21:52 libpanelw.a
lrwxrwxrwx  1 travis travis       16 Apr  7 15:42 libpanelw.so -> libpanelw.so.6.0
lrwxrwxrwx  1 travis travis       16 Apr  7 15:42 libpanelw.so.6 -> libpanelw.so.6.0
-rwxr-xr-x  2 travis travis    17544 Nov 10 21:52 libpanelw.so.6.0
-rwxr-xr-x  1 travis travis 22817750 Apr  7 15:42 libpython3.6m.a
lrwxrwxrwx  1 travis travis       20 Apr  7 15:42 libpython3.6m.so -> libpython3.6m.so.1.0
lrwxrwxrwx  1 travis travis       20 Apr  7 15:42 libpython3.6m.so.1 -> libpython3.6m.so.1.0
-rwxr-xr-x  1 travis travis  3571200 Apr  7 15:42 libpython3.6m.so.1.0
lrwxrwxrwx  1 travis travis       20 Apr  7 15:42 libquadmath.so -> libquadmath.so.0.0.0
lrwxrwxrwx  1 travis travis       20 Apr  7 15:42 libquadmath.so.0 -> libquadmath.so.0.0.0
-rwxr-xr-x  2 travis travis   752952 Oct  6  2017 libquadmath.so.0.0.0
-rw-r--r--  2 travis travis  1353950 Nov 10 21:58 libreadline.a
lrwxrwxrwx  1 travis travis       18 Apr  7 15:42 libreadline.so -> libreadline.so.7.0
lrwxrwxrwx  1 travis travis       18 Apr  7 15:42 libreadline.so.7 -> libreadline.so.7.0
-rwxr-xr-x  1 travis travis   959288 Apr  7 15:42 libreadline.so.7.0
-rw-r--r--  2 travis travis  1164344 Jan 30 15:25 libsqlite3.a
-rwxr-xr-x  1 travis travis      993 Apr  7 15:42 libsqlite3.la
lrwxrwxrwx  1 travis travis       19 Apr  7 15:42 libsqlite3.so -> libsqlite3.so.0.8.6
lrwxrwxrwx  1 travis travis       19 Apr  7 15:42 libsqlite3.so.0 -> libsqlite3.so.0.8.6
-rwxr-xr-x  2 travis travis   971904 Jan 30 15:25 libsqlite3.so.0.8.6
-rw-r--r--  2 travis travis   816186 Dec  7 16:03 libssl.a
lrwxrwxrwx  1 travis travis       15 Apr  7 15:42 libssl.so -> libssl.so.1.0.0
-rwxr-xr-x  2 travis travis   537368 Dec  7 16:03 libssl.so.1.0.0
lrwxrwxrwx  1 travis travis       19 Apr  7 15:42 libstdc++.so -> libstdc++.so.6.0.24
lrwxrwxrwx  1 travis travis       19 Apr  7 15:42 libstdc++.so.6 -> libstdc++.so.6.0.24
-rwxr-xr-x  2 travis travis  8188008 Oct  6  2017 libstdc++.so.6.0.24
-rwxr-xr-x  1 travis travis  2036224 Apr  7 15:42 libtcl8.6.so
-rwxr-xr-x  2 travis travis     8260 Nov  8 20:10 libtclstub8.6.a
lrwxrwxrwx  1 travis travis       11 Apr  7 15:42 libtinfo.a -> libtinfow.a
lrwxrwxrwx  1 travis travis       16 Apr  7 15:42 libtinfo.so -> libtinfow.so.6.0
-rw-r--r--  1 travis travis   403628 Apr  7 15:42 libtinfow.a
lrwxrwxrwx  1 travis travis       16 Apr  7 15:42 libtinfow.so -> libtinfow.so.6.0
lrwxrwxrwx  1 travis travis       16 Apr  7 15:42 libtinfow.so.6 -> libtinfow.so.6.0
-rwxr-xr-x  1 travis travis   250824 Apr  7 15:42 libtinfow.so.6.0
-rwxr-xr-x  2 travis travis  1572608 Nov  8 20:11 libtk8.6.so
-rwxr-xr-x  2 travis travis     6056 Nov  8 20:11 libtkstub8.6.a
lrwxrwxrwx  1 travis travis       16 Apr  7 15:42 libtsan.so -> libtsan.so.0.0.0
lrwxrwxrwx  1 travis travis       16 Apr  7 15:42 libtsan.so.0 -> libtsan.so.0.0.0
-rwxr-xr-x  2 travis travis  5113208 Oct  6  2017 libtsan.so.0.0.0
lrwxrwxrwx  1 travis travis       17 Apr  7 15:42 libubsan.so -> libubsan.so.0.0.0
lrwxrwxrwx  1 travis travis       17 Apr  7 15:42 libubsan.so.0 -> libubsan.so.0.0.0
-rwxr-xr-x  2 travis travis  1878328 Oct  6  2017 libubsan.so.0.0.0
lrwxrwxrwx  1 travis travis       18 Apr  7 15:42 libyaml-0.so.2 -> libyaml-0.so.2.0.5
-rwxr-xr-x  2 travis travis   131576 Nov 13 21:53 libyaml-0.so.2.0.5
-rw-r--r--  2 travis travis   171088 Nov 13 21:53 libyaml.a
-rwxr-xr-x  1 travis travis      959 Apr  7 15:42 libyaml.la
lrwxrwxrwx  1 travis travis       18 Apr  7 15:42 libyaml.so -> libyaml-0.so.2.0.5
-rw-r--r--  2 travis travis   126634 Nov  7 22:03 libz.a
lrwxrwxrwx  1 travis travis       14 Apr  7 15:42 libz.so -> libz.so.1.2.11
lrwxrwxrwx  1 travis travis       14 Apr  7 15:42 libz.so.1 -> libz.so.1.2.11
-rwxr-xr-x  2 travis travis   101152 Nov  7 22:04 libz.so.1.2.11
drwxr-xr-x  2 travis travis     4096 Apr  7 15:42 pkgconfig
drwxr-xr-x 35 travis travis     8192 Apr  7 15:42 python3.6
drwxr-xr-x  2 travis travis       52 Apr  7 15:42 sqlite3.20.0
drwxr-xr-x  5 travis travis       39 Apr  7 15:42 tcl8
drwxr-xr-x  6 travis travis      250 Apr  7 15:42 tcl8.6
-rw-r--r--  1 travis travis     8165 Apr  7 15:42 tclConfig.sh
-rw-r--r--  2 travis travis      773 Nov  8 20:10 tclooConfig.sh
drwxr-xr-x  2 travis travis      112 Apr  7 15:42 tdbc1.0.5
drwxr-xr-x  2 travis travis       75 Apr  7 15:42 tdbcmysql1.0.5
drwxr-xr-x  2 travis travis       73 Apr  7 15:42 tdbcodbc1.0.5
drwxr-xr-x  2 travis travis       81 Apr  7 15:42 tdbcpostgres1.0.5
lrwxrwxrwx  1 travis travis       17 Apr  7 15:42 terminfo -> ../share/terminfo
drwxr-xr-x  2 travis travis       69 Apr  7 15:42 thread2.8.1
drwxr-xr-x  6 travis travis     4096 Apr  7 15:42 tk8.6
-rw-r--r--  1 travis travis     4334 Apr  7 15:42 tkConfig.sh

for some reason cudatoolkit isn’t being installed in your CI setup. I dont know why, it is listed as a dependency for pytorch=0.3.0. Try:

conda update -y conda # get latest version of tool
#manually install cudatoolkit maybe
conda install -y cudatoolkit cudnn

I finally solved the issue. The cause is two-fold:

  1. The correct conda library path is $HOME/miniconda/envs/some_env/lib because I created a virtual env named some_env for everything. So, I needed to add export LD_LIBRARY_PATH="$HOME/miniconda/envs/some_env/lib:$LD_LIBRARY_PATH.
  2. cudatoolkit was in fact installed as pytorch’s dependency, but the version was wrong. Installing only pytorch 0.3.0 will install cudatoolkit 9.0 as dependency, while pytorch itself is compiled with cudatoolkit 8.0 (as indicated by the build string py36_cuda8.0.61_cudnn7.0.3h37a80b5_4). So, I needed to explicitly specify cudatoolkit version: conda install -y -c pytorch pytorch=0.3.0 cudatoolkit=8.0

The complete .travis.yml file is:

language: python
before_install:
  - wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh
  - bash ~/miniconda.sh -b -p $HOME/miniconda
  - export PATH="$HOME/miniconda/bin:$PATH"
  - conda update -y conda
  - conda create -y -n some_env python=3.6
  - source activate some_env
  - conda install -y -c pytorch pytorch=0.3.0 cudatoolkit=8.0  # specify cudatoolkit version explicitly
  - export LD_LIBRARY_PATH="$HOME/miniconda/envs/some_env/lib:$LD_LIBRARY_PATH"  # add conda library path
install:
  - pip install -r requirements.txt
  - pip install .
script: pytest --cov
after_success: coveralls

Now the build succeeds again. Thanks for pointing me to the right direction :smile:

P.S. I find it weird that cudatoolkit 9.0 is installed instead of 8.0 which pytorch 0.3.0 is compiled with. Why is that?

P.S. I find it weird that cudatoolkit 9.0 is installed instead of 8.0 which pytorch 0.3.0 is compiled with. Why is that?

This is my mistake. I specified dependency on cudatoolkit, but not an exact version.

I’m working on fixing up the 0.3.1 packages.

1 Like